【问题标题】:How can I set process.env from main process inside of an NPM package?如何从 NPM 包内的主进程设置 process.env?
【发布时间】:2021-05-11 04:06:18
【问题描述】:

我正在编写一个使用 process.env 设置环境变量的 NPM 包。以下是 NPM 包中的代码:

Object.keys(parsedObj).forEach((key) => {
  process.env[key] = parsedObj[key];
});

在我的console.log process.env 包内的这个文件中,查看变量设置是否正确。但是,当我在导入此函数的代码中调用此函数时,我 console.log process.env 并且变量丢失了。

关于上下文,这里是整个文件:https://github.com/arsood/Cooler-Env/blob/master/loadEnv.js#L33

有没有人想过为什么这些全局变量在运行这个函数后在主代码中不可用?模块是否运行自己的进程?如果是这样,有没有办法从包中将环境变量写入主进程?

【问题讨论】:

    标签: node.js environment-variables


    【解决方案1】:

    看起来您的函数是异步的,并且您的模块导出了该函数,因此我建议您在启动应用程序时在文件中导入一次文件,然后调用它并等待其执行,然后才开始您的其余部分应用程序,否则没有保修,因为代码是异步的。

    loadEnv()
         .then(() => {
              initApp(); // Some function that starts rest of the app.
         })
    

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 2017-08-03
      • 2017-07-12
      • 2019-02-23
      • 2018-05-26
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多