开头

上一篇讲了如何开始搭建脚手架,接下来说说函数定义的规则和要点。

定义函数

之前说了,如果将函数直接写,脚手架在构建的时候就会自动的调用,有时候我们只是需要一个私有函数。有三个不同的方法可以实现。

  • 函数名前面加一个下划线,就像这样_method
  • 放在构造函数里。

    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();
      }
    });
    

合并

官方提到了可以这样进行合并。

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

顺序

对于那些会自动执行的函数,他们是有一个优先顺序的,下面这些函数是安顺序的一个一个执行的。

  • initializing - 你的初始化函数,就是构造函数,主要就是检查一下参数什么的
  • prompting - 给用户展示你的菜单,选点东西什么的
  • configuring - 保存配置信息,创建类似.editorconfig的文件
  • default - 就是默认,只要不在这个列表里的函数都在这个位置执行
  • writing - 创建模板文件
  • conflicts - 处理异常和冲突
  • install - 装npmbower依赖什么的
  • end - 打个命令行祝贺使用者成功了

结语

这节有点短,但单独领出来感觉还是很有必要,理顺了大的流程。欢迎勘误和提问。


limichange
4.2k 声望74 粉丝

本人已经不再这里玩了,


引用和评论

0 条评论