javascript - 启动 PM2 时从 dotenv 文件加载变量
问题描述
我以这种方式使用 PM2 将我的应用程序实例作为package.json
脚本启动:
"start:pm2": "pm2 start -i max node myapp.js"
我发现并非团队中的所有成员都希望max
在开发时总是将其用作实例数的值,而是更喜欢使用一些较低的值。
为了不更改package.json
,我最好让他们更改.env
文件中的值,因为我们已经使用它,以便将其中的值用作 pm2 的参数。
我知道我可以创建一个包装器 js 或 bash 脚本来从.env
文件加载变量并将其传递给 pm2,但最好有一个没有它的解决方案。
我怎样才能做到这一点?
解决方案
您可以创建一个ecosystem.config.js
文件并在“env:”属性下声明您的环境变量NODE_APP_INSTANCE
,在您的情况下,可用于设置实例数:
module.exports = {
apps : [{
name: "MyApp",
script: "./myapp.js",
env: {
NODE_ENV: "development",
NODE_APP_INSTANCE: "max"
},
env_production: {
NODE_ENV: "production",
}
}]
}
然后调用pm2 start
或pm2 start /path/to/ecosystem.config.js
从其他文件夹加载生态系统。
推荐阅读
- python - python & mysql,执行操作失败;无法处理参数
- spring-boot - Spring Boot 存储库查询以返回有序结果
- sql - 当我们需要检查条件时,如何编写 UPDATE 语句?
- r - Ifelse(V>=80,"Above_Average","Average") 在 R 中打印最后 2 个输出之间的额外空格
- c# - 当分组属性是字符串列表时,按组名对 ListView 中的分组进行排序
- java - JSoup 获取元素 Span
- material-ui - 向自动完成添加其他按钮
- reactjs - 无法在 react.js 中访问功能组件变量作为回报
- css - 为什么更换字体不仅会更改英文字符,还会更改中文字符?
- node.js - 当以顺序方式从多个 API 获取数据时,如何提高后端性能?