`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。