关于pm2:PM2用环境变量隔离Nodejs项目的开发与生产环境

4次阅读

共计 789 个字符,预计需要花费 2 分钟才能阅读完成。

一、问题简介

develop 和 production 运行的环境有很大差异,譬如两个环境下的数据库地址、用户名等都是不一样的,硬编码这些参数不是好的抉择,通过环境变量能够很好解决。


二、解决方案
1、生成配置文件
  • pm2 init simple

    // 生成默认配置文件:ecosystem.config.js
    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js"
      }]
    }
2、增加环境变量配置
// ecosystem.config.js
module.exports = {
    apps: [{
        name: "app1",
        script: "./app.js",
        env: {
                        "ip": "192.168.1.2",
            "NODE_ENV": "development"
        },
        env_production: {
                        "ip": "192.168.1.1",
            "NODE_ENV": "production",
        }
          env_develop: {
            "ip": "192.168.1.2",
            "NODE_ENV": "develop",
        }
    }]
}
3、调用环境变量
  • env 默认环境变量,只有启动利用:pm2 start ecosystem.config.js ,那么 ip 变量就会被传递给利用 app1
  • env_production 对应调用形式是:pm2 start ecosystem.config.js --env production
  • env_develop 对应调用形式是:pm2 start ecosystem.config.js --env develop
  • 规定是:配置文件中定义 env_ 结尾的属性,那么就用 --env 参数调用。
4、--update-env : 更新环境变量
NODE_ENV=production pm2 restart web-interface --update-env

三、参考文档
  • PM2 用环境变量隔离 Node.js 我的项目的开发与生产环境!
正文完
 0