我很好奇 AWS Beanstalk 部署的整体工作流程。我假设它在某个时候运行 npm 来获取安装在服务器上的包。但我只是想知道 AWS Beanstalk 是否使用最新的“npm install --production”命令来安装包。目前我有一个如下所示的 packages.json 文件,并且希望尽可能确保只安装依赖项而不是 devDependencies。
"dependencies": {
"express": "3.4.4",
"jade": "*",
"restify": "~2.6.0",
"assert": "~1.0.0",
"orchestrate": "0.0.2",
"chance": "~0.5.3"
},
"devDependencies": {
"mocha": "~1.15.1"
}
最佳答案
如果您设置环境变量 NPM_CONFIG_PRODUCTION=true
,您可以让 AWS Elastic Beanstalk 在生产模式下运行 npm install
。您可以通过 Elastic Beanstalk Web 控制台执行此操作。
或者,将以下文本保存到项目根目录中名为 .ebextensions
的目录中具有后缀 .config
的任何文件中,您可以实现相同的目的,而无需每次都在网络控制台中设置它们:
option_settings:
- option_name: NPM_CONFIG_PRODUCTION
value: true
注意:确保您使用的是空格而不是制表符,因为它是 YAML 格式。
我发现在 t1.micro 环境中更新新的 node.js 代码的时间从大约 5 分钟减少到 90 秒,因为它没有安装所有的 devDependencies,如 grunt、karma、mocha 等.
关于javascript - AWS Beanstalk 在部署 Nodejs 应用程序时如何使用 NPM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552373/