生成器插件默认会导出一个函数,函数参数为 context
,在执行过程中 context
会自动注入到生成器插件中。
context
提供了两类 API,分别用于自定义 Input 和定义生成器插件声明周期逻辑。
下面只对部分 API 做简单示例讲解,完整的 API 请移步 生成器插件 API 查看。
Modern.js Framework 和 Modern.js Module 都存在一些默认的 Input 交互,使用这里的 API 可以对这些 Input 进行添加、修改、隐藏、提供默认值等操作。
例如:
生成器插件提供了两个生命周期钩子函数用于定义生成器插件行为:
onForged:完成文件操作后的生命周期。
afterForged:onForged 钩子函数执行完成后的生命周期。
在 Modern.js 工程方案生成器完成文件操作之后的钩子函数,用于完成生成器插件中的文件操作,比如添加模板文件,覆盖现有文件,删除现有文件等。
对于扩展类型同时执行多个生成器插件时,将会按照声明顺序依次执行对应生成器插件的 onForged
操作。
onForged
函数参数为一个回调函数,参数为 api
和 input
。
api
上会提供生成器插件支持的文件操作相关方法。
input
为当前用户输入内容,包含 --config
参数定义的,默认工程方案交互的及生成器插件定义的用户输入。
当需要添加新的文件模板时,将模板文件定义到 templates
目录,然后通过上述 api
上方法进行操作即可,生成器插件默认对 templates
目录文件进行操作,无需再声明 templates
路径。
onForged
钩子函数执行完成后执行,这里主要用于进行安装依赖,Git 操作等。
默认 Modern.js 工程方案在完成文件操作后会默认执行安装依赖及 Git 初始化,Git 初次提交等,该钩子函数可以不使用。
对于自定义的生成器插件还支持 custom 类型,该类型只提供了少量最佳实践的项目配置,则需要在该钩子函数中完成安装依赖和 Git 初始化等操作。
afterForged
函数参数也为一个回调函数,参数为 api
和 input
。