javascript - AWS Beanstalk 在部署 Nodejs 应用程序时如何使用 NPM?

标签 javascript amazon-web-services npm amazon-elastic-beanstalk

我很好奇 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/

相关文章:

node.js - 如何包含位于 node_modules 文件夹中的脚本?

javascript - 在 CSS 转换期间触发事件

javascript - Monaco Editor 中的自定义背景颜色?

amazon-web-services - CloudFront 上的 AWS 证书重新导入反射

node.js - 在 Appfog 上部署基于 Deployd (deployd.com) 的 Node.js 应用程序

javascript - ag-grid-enterprice 未捕获的类型错误 : Object prototype may only be an Object or null: undefined

javascript - JQuery/如何显示每个表格单元格的警报?

javascript - $http 成功未定义 Angularjs 自定义服务变量

amazon-web-services - 如何检测图像中超过50个单词的文本?

postgresql - 如何在 Elastic Beanstalk 上更新 pg_dump