节点和 Elastic Beanstalk:设置环境 NODE_ENV=prod
Posted
技术标签:
【中文标题】节点和 Elastic Beanstalk:设置环境 NODE_ENV=prod【英文标题】:Node & Elastic Beanstalk: Set environment NODE_ENV=prod 【发布时间】:2015-07-30 06:03:38 【问题描述】:生产环境需要执行如下命令:
NODE_ENV=production node app.js
我尝试将它作为配置下的命令传递:
我在日志中收到以下错误:
sh: NODE_ENV=prod node app.js: command not found
我也试过了:
NODE_ENV=prod //
error: sh: NODE_ENV=prod: command not found
NODE_ENV=prod app.js //
error: sh: NODE_ENV=prod app.js: command not found
在 ELB 上启动应用程序时执行以下命令的最佳方法是什么:
NODE_ENV=production node app.js
【问题讨论】:
【参考方案1】:您不需要手动设置节点命令。 Elastic Beanstalk 尝试依次启动 app.js
、server.js
和 npm start
。您可以在“配置”下的“环境属性”部分设置NODE_ENV
的值。
【讨论】:
我已经这样做了,但它不起作用。它被覆盖为“生产”【参考方案2】:正如其他人所提到的,您可以通过转到配置 -> 软件 -> 环境属性来手动添加它们。
第二种方法是添加一个.ebextensions/environment.config
文件。
-
在项目的根目录下添加目录
.ebextensions
。
在.ebextensions
中创建文件environment.config
。
添加您的环境配置。
environment.config
的例子:
option_settings:
- option_name: NODE_ENV
value: production
【讨论】:
在我看来,正如您所指出的,最好在配置文件中跟踪此类内容。该案例在技术上已经赢得了对配置 + 基础架构的压倒性支持,即具有 cloudformation 和 terraform 等的代码。 我已经这样做了,但它不起作用。它被覆盖为“生产”【参考方案3】:您需要使用“环境属性”而不是节点命令。
Key: NODE_ENV
Value: production
【讨论】:
我已经这样做了,但它不起作用。它被覆盖为“生产”【参考方案4】:我只需在同一配置区域下的环境属性中设置NODE_ENV
。您也可以在 .ebextensions
配置中进行设置。
【讨论】:
我已经这样做了,但它不起作用。它被覆盖为“生产” @snehanshu.js 与其评论每个人的答案,不如发布一个新问题以及详细信息。以上是关于节点和 Elastic Beanstalk:设置环境 NODE_ENV=prod的主要内容,如果未能解决你的问题,请参考以下文章
用于节点 64 位和环境的 Amazon Elastic Beanstalk .config
Elastic Beanstalk 预部署 Laravel 节点错误
在 Amazon Elastic Beanstalk 节点之间共享数据