You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:02:37