`gulp build`和依赖对devDependency的节点

尽pipe所有的东西都是dependency devDependency ,但我还是很困惑,在npm start之前,如何进行“构build时间”步骤所需的模块。

在我的项目中,必须在npm start工作之前调用gulp build 。 构build步骤中的活动示例包括转码和捆绑。 官方文档特别指出,不要在依赖项部分包含转译器,而应该在devDependencies部分。 其他的最佳实践表明,自动生成的代码应该保持在git / modules之外。 把它们放在一起,我不知道该做什么:没有经过编译和构build的人就无法下载和运行我的模块,而且这些步骤如果没有编译器/捆绑器/等等就无法完成。 在依赖部分。 (否则“跑步”被认为是“发展”?)

节点项目在这种情况下如何正确构build?

任何不需要在生产模式下运行您的应用程序应该是devDependency。 这将包括所有的构build工具。

你的gulp build应该运行在你的自动构build服务器上,并生成运行你的应用程序所需的任何东西(例如,经过转换的JS或者一个webpack包)。 你的构build脚本应该是这样的:

 npm install gulp build # or better make it a script in package.json # npm run build # remove devDependencies - no longer needed npm prune --production npm start 

你的package.json将包含如下内容:

 { ... "scripts": { "build": "gulp build", "start": "NODE_ENV=production node lib/index" } ... } 

在这个人为的例子中,入口点是lib / index。