dependency尽管在vs.上写了这么多devDependency,我仍然很困惑如何继续处理“构建时间”步骤所需的模块,然后npm start才能工作。
在我的项目中,必须gulp build先调用npm start才能工作。构建步骤中的活动示例包括转译和捆绑。官方文档明确表示不要在依赖项部分中包含转译器,而是在 devDependencies 部分中包含。其他最佳实践建议应将自动生成的代码排除在 git/模块之外。但是,将这些放在一起,我不明白该怎么做:如果没有转译和构建,有人无法下载和运行我的模块,并且如果没有转译器/捆绑器/等,这些步骤就无法完成。在依赖项部分。(否则“运行”就被认为是“开发”?)
如何针对这种情况正确构建节点项目?
在生产模式下运行应用程序不需要的任何内容都应该是 devDependency。这将包括您的所有构建工具。
您gulp build应该在自动构建服务器上运行,并生成运行应用程序所需的任何内容(例如,转译的 JS 或 webpack 包)。您的构建脚本应该类似于:
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
Run Code Online (Sandbox Code Playgroud)
您的 package.json 将包含类似以下内容:
{
...
"scripts": {
"build": "gulp build",
"start": "NODE_ENV=production node lib/index"
}
...
}
Run Code Online (Sandbox Code Playgroud)
在这个人为的示例中,入口点是 lib/index。