node.js - 如何将 NODE_ENV=production 传递给 pm2?
问题描述
我已经部署了这个节点应用程序并且运行良好NODE_ENV=production yarn start
。
我可以使用妖魔化应用程序
pm2 start npm -- start
但随后它默认为NODE_ENV=development
配置。
当我使用
pm2 start npm -- start NODE_ENV=production
它仍然从development
配置开始。
我也尝试使用process.yml
文件传递环境
apps:
- script : index.js
watch: true
instances: 4
env :
NODE_ENV: production
但pm2 start npm -- start process.yml
仍会加载开发配置。
我怎样才能解决这个问题?
解决方案
您可能会遇到这种情况的原因是因为您会从pm2
一次开始development
。现在它将使用该环境,直到您使用它为止kill
。遵循这些步骤应该会有所帮助
./node_modules/.bin/pm2 kill
NODE_ENV=production ./node_modules/.bin/pm2 start server.js
您也可以使用--update-env
. 来自官方文档
默认情况下,我们希望 PM2 在重新启动或重新加载时不会更改进程环境,因此它们是不可变的。如果要更新它们,则必须使用 --update-env :
推荐阅读
- sql - Sequelize Postgres - 如何使用 ON CONFLICT 来实现独特的?
- php - 如何使用 laravel 5.8 创建多条路线
- python - 在循环中生成的 Bokeh 中的链接图(框选择、套索等)
- android - 更改实时数据库的两个表时如何修复重新启动当前活动
- kubernetes - 具有多个 securityPolicys 的 BackendConfig 不起作用
- reactjs - CORS 策略已阻止从源“localhost:3000”访问“...”处的 XMLHttpRequest
- reactjs - React 应用部署后显示空白页面
- javascript - 检查 nodejs 或 javascript 中的管理员或非管理员用户
- delphi - 查询 IConnectionPointContainer 会导致崩溃
- node.js - 如何配置 JSON Server 以支持特定的查询字符串参数?