开发 Yeoman 生成器模板本身的最简单方法
The easiest way to develop the Yeoman generator's template itself
示例情况
- 我有自己的 Yeoman 生成器,它有一个文件夹,其中包含生成的项目的 "template"。
- 生成器从用户那里获取一些信息,用这些信息插入 "template",然后输出一个简单的工作项目。
- 我想确保 "template" 确实有效,至少在一种积极的情况下,如果不是所有输入组合。我可以编写 integration tests(它将 运行 生成器与一些数据然后尝试 运行 生成的代码并验证是否一切都按预期工作),但是,有时工作量太大并且不方便进行试错式开发或某些原型设计。
问题
有没有简单的方法如何使用 "template" 本身,如何 运行 它或在本地手动使用它,而不需要先 运行 生成器我在 "template"?
的文件中更改单个字母的时间
也许是某种构建步骤,运行 生成器会为我提供一些预设数据? npm模块形式有什么准备好吗?是否存在最佳实践?
在 运行 集成测试之后,您可以在生成的项目文件夹中生成一些命令,看看它们是否正常通过。
到目前为止,我找到的最佳解决方案是创建一个脚本,它:
- 创建临时沙箱目录。
- 执行
npm link
- 更改
PATH
,使其 不 包含本地 node_modules
的 .bin
(这是防止本地安装的 Yeoman 占用的必要条件)当脚本为 运行 例如 npm run develop
). 时优先于全局脚本
- 将环境值
NON_INTERACTIVE
设置为真实值。
- 在沙盒目录中运行
yo <your generator>
。
- 在沙箱目录中运行
npm start
以 运行 新生成的服务器代码。
如果 process.env.NON_INTERACTIVE
为真,请更改您的生成器,以便它能够自动为没有默认值的所需提示提供一些虚拟默认值。
然后 运行 脚本为:
$ nodemon --watch <directory with your template> --exec <path to your script> --ext js
它很慢,但是很管用。这样您就可以自己开发模板,避免每次需要尝试时都填充生成器。
示例情况
- 我有自己的 Yeoman 生成器,它有一个文件夹,其中包含生成的项目的 "template"。
- 生成器从用户那里获取一些信息,用这些信息插入 "template",然后输出一个简单的工作项目。
- 我想确保 "template" 确实有效,至少在一种积极的情况下,如果不是所有输入组合。我可以编写 integration tests(它将 运行 生成器与一些数据然后尝试 运行 生成的代码并验证是否一切都按预期工作),但是,有时工作量太大并且不方便进行试错式开发或某些原型设计。
问题
有没有简单的方法如何使用 "template" 本身,如何 运行 它或在本地手动使用它,而不需要先 运行 生成器我在 "template"?
的文件中更改单个字母的时间也许是某种构建步骤,运行 生成器会为我提供一些预设数据? npm模块形式有什么准备好吗?是否存在最佳实践?
在 运行 集成测试之后,您可以在生成的项目文件夹中生成一些命令,看看它们是否正常通过。
到目前为止,我找到的最佳解决方案是创建一个脚本,它:
- 创建临时沙箱目录。
- 执行
npm link
- 更改
PATH
,使其 不 包含本地node_modules
的.bin
(这是防止本地安装的 Yeoman 占用的必要条件)当脚本为 运行 例如npm run develop
). 时优先于全局脚本
- 将环境值
NON_INTERACTIVE
设置为真实值。 - 在沙盒目录中运行
yo <your generator>
。 - 在沙箱目录中运行
npm start
以 运行 新生成的服务器代码。
如果 process.env.NON_INTERACTIVE
为真,请更改您的生成器,以便它能够自动为没有默认值的所需提示提供一些虚拟默认值。
然后 运行 脚本为:
$ nodemon --watch <directory with your template> --exec <path to your script> --ext js
它很慢,但是很管用。这样您就可以自己开发模板,避免每次需要尝试时都填充生成器。