我对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" }
rgareth.. 22
npm install
如果设置环境变量,则可以使AWS Elastic Beanstalk 在生产模式下运行NPM_CONFIG_PRODUCTION=true
.您可以通过Elastic Beanstalk Web控制台执行此操作.
或者,将以下文本保存到项目根.config
目录中调用的目录中具有后缀的任何文件中,.ebextensions
您可以实现相同的操作,而无需每次都在Web控制台中设置它们:
option_settings: - option_name: NPM_CONFIG_PRODUCTION value: true
注意:确保使用空格而不是制表符,因为它是YAML格式.
我发现在t1.micro环境中更新新node.js代码的时间从大约5分钟下降到90秒,现在它没有安装所有devDependencies,如grunt,karma,mocha等.