开头
上一篇讲了如何开始搭建脚手架,接下来说说函数定义的规则和要点。
定义函数
之前说了,如果将函数直接写,脚手架在构建的时候就会自动的调用,有时候我们只是需要一个私有函数。有三个不同的方法可以实现。
- 函数名前面加一个下划线,就像这样
_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
- 装npm
和bower
依赖什么的 -
end
- 打个命令行祝贺使用者成功了
结语
这节有点短,但单独领出来感觉还是很有必要,理顺了大的流程。欢迎勘误和提问。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。