我通过PM2将我的应用程序实例作为package.json脚本启动:
"start:pm2": "pm2 start -i max node myapp.js"
我发现,并非团队中的所有成员在开发时都总是希望使用max作为实例数的值,而是更喜欢使用较低的值.
为了不更改package.json,我最好让他们更改.env文件中的值,因为我们已经使用过它,因此来自它的值将用作pm2的参数.
我知道我可以创建一个包装器js或bash脚本来从.env文件中加载变量并将其传递给pm2,但最好是没有它的解决方案.
我该如何实现?
最佳答案
更好的方法是从代码中删除dotenv并在命令行上“要求”它.这使您的代码可以在任何环境(包括基于云的环境)之间很好地传输-这是环境变量的主要功能之一.
a)在脚本旁边编码.env文件(例如app.js)
b)在没有pm2的情况下运行脚本:
node -r dotenv/config app.js
c)在pm2.config.js中:
module.exports = {
apps : [{
name : 'My Application',script : 'app.js',node_args : dotenv/config',...
}],}
接着
pm2启动pm2.config.js
注意:在命令行上使用dotenv / config是dotenv自己推荐的最佳实践之一