yeoman - 搭建本身的腳手架 - 2

開頭

上一篇講了如何開始搭建腳手架,接下來講說函數定義的規則和要點。npm

定義函數

以前說了,若是將函數直接寫,腳手架在構建的時候就會自動的調用,有時候咱們只是須要一個私有函數。有三個不一樣的方法能夠實現。函數

  • 函數名前面加一個下劃線,就像這樣_method
  • 放在構造函數裏。this

    generators.Base.extend({
      init: function () {
        this.helperMethod = function () {
          console.log('won\'t be called automatically');
        };
      }
    });
  • 用繼承的方法。命令行

    var MyBase = generators.Base.extend({
      helper: function () {
        console.log('won\'t be called automatically');
      }
    });
    
    module.exports = MyBase.extend({
      exec: function () {
        this.helper();
      }
    });

合併

官方提到了能夠這樣進行合併。code

generators.Base.extend({
  priorityName: {
    method: function () {},
    method2: function () {}
  }
});

順序

對於那些會自動執行的函數,他們是有一個優先順序的,下面這些函數是安順序的一個一個執行的。繼承

  • initializing - 你的初始化函數,就是構造函數,主要就是檢查一下參數什麼的
  • prompting - 給用戶展現你的菜單,選點東西什麼的
  • configuring - 保存配置信息,建立相似.editorconfig的文件
  • default - 就是默認,只要不在這個列表裏的函數都在這個位置執行
  • writing - 建立模板文件
  • conflicts - 處理異常和衝突
  • install - 裝npmbower依賴什麼的
  • end - 打個命令行祝賀使用者成功了

結語

這節有點短,但單獨領出來感受仍是頗有必要,理順了大的流程。歡迎勘誤和提問。bower

相關文章
相關標籤/搜索