开发Yeoman生成器模板本身的最简单的方法
示例情况
- 我有我自己的Yeoman发电机,它有一个带有结果项目“模板”的文件夹。
- 生成器从用户处获取一些信息,用信息插入“模板”,然后输出一个简单的工作项目。
- 我希望确保“模板”实际上在起作用,至less在一个积极的情况下,如果不是所有的input组合。 我可以编写集成testing (这将运行生成器的一些数据,然后尝试运行结果代码,并validation是否所有的预期工作),但仍然有时工作太多,这是不方便的试错types的发展或一些原型。
题
有没有简单的方法如何使用“模板”本身,如何运行或本地手动使用它,而不需要每次更改“模板”文件中的单个字母时,首先运行生成器?
也许某种构build步骤,这将运行一些预设数据我的发电机? 有没有准备好npm模块的forms? 是否存在最佳实践?
运行集成testing后,可以在生成的项目文件夹中产生一些命令,看看是否传递正常。
到目前为止,我find的最佳解决scheme是创build一个脚本,其中:
- 创build一个临时沙箱目录。
- 执行
npm link
- 修改
PATH
,使其不包含本地node_modules
.bin
(这是为了防止本地安装的Yeoman在npm run develop
脚本时优先于全局的,例如npm run develop
)。 - 将环境值
NON_INTERACTIVE
设置为truthy。 - 在沙箱目录中运行
yo <your generator>
。 - 运行sandbox目录中的
npm start
以运行新生成的服务器代码。
如果process.env.NON_INTERACTIVE
是真实的,那么更改您的生成器,以便它能够自动为没有默认值的所需提示提供一些虚拟默认值。
然后运行脚本:
$ nodemon --watch <directory with your template> --exec <path to your script> --ext js
这很慢,但它工作。 这样,您可以开发模板本身,避免每次需要尝试某些东西时填充生成器。