我假设 PM2 在启动时以“本机”系统方式附加 env vars,例如:
MYVAR=hey; node app.js
与dotenv
npm 包的不同之处在于它必须以另一种方式附加 vars,因为它在脚本中工作(它不能这样做MYVAR=someothervar; node app.js
,因为程序已经启动),所以它的工作方式如下:
dotenv.config() //reads .env file and appends stuff to process.env at runtime
现在说 PM2 启动MYVAR=hey; node app.js
,然后在我们运行的 app.jsdotenv.config()
中读取一个包含 .env 的 .env 文件MYVAR=foo
。哪个变量将在 process.env 中?
生态系统.config.js
{
//...standard pm2 config above
env: {
MYVAR: 'ecosystem',
},
}
.env/dotenv
MYVAR=dotenv
代码
dotenv.config()
console.log(process.env.MYVAR)