如何避免Node.js与PM2的环境配置重复?
如何避免Node.js与PM2环境变量配置重复?
我一直使用Node.js v20,通过传入--env-file env/.dev来设置环境变量。现在部分package scripts需要添加PM2支持,但PM2要求将环境变量放入ecosystem.config.js中,这导致我需要维护两份环境变量配置(一份用于纯Node.js脚本,一份用于PM2脚本)。我认为PM2应该支持复用Node.js原生的配置方式,但尚未找到方法。有没有办法避免这种场景下的环境配置重复?我不想因为PM2而在两处维护环境配置。
解决方案(更新)
感谢Mehul Zappy的回答提供了思路,不过最终我编写了自己的简单解析器以避免引入额外库——因为dotenv在解析简单配置文件时表现不佳。现在我的ecosystem.config.js文件如下:
const fs = require('node:fs'); function loadConfig(file) { const txt = fs.readFileSync(file, 'utf-8'); const m = txt.match(/(\w+)=(\w*)/g); return m.reduce((p, c) => { const s = c.split('='); return {...p, [s[0]]: s[1]} }, {}); } const env_dev = loadConfig('env/.dev'); const env_prod = loadConfig('env/.prod'); module.exports = { apps: [ { name: 'my-app', script: './src/index.js', args: 'param1=123', watch: true, env_dev, env_prod } ] }
内容的提问来源于Stack Exchange,提问作者vitaly-t
相关产品推荐
相关产品推荐

