Node JS 永久加载 dotenv

2024-02-12

我想问是否有人知道如何永远运行可以加载 .env 文件。

目前如果我们运行forever start app.js,process.env.foo 变得未定义。


TLDR,您需要添加--workingDir您的 cronjob 行的路径。

forever -c "node -r dotenv/config" --workingDir app-workdir-path start app.js

之前有很多答案,但没有一个真正解决这个特定的用例。

To run forever https://www.npmjs.com/package/forever with dotenv https://www.npmjs.com/package/dotenv你需要做两件事。

首先我们需要使用 dotenvpreload https://www.npmjs.com/package/dotenv#preload功能,这意味着我们需要永远将节点参数传递给进程。我们可以使用-c COMMAND旗帜永远有。

第二件事与如何dotenv包作品。这是源代码的片段:

let dotenvPath = path.resolve(process.cwd(), '.env')

什么是process.cwd() do?

process.cwd()方法是process模块​​的内置应用程序编程接口,用于获取node.js进程的当前工作目录。

Meaning dovenv包想要加载.env工作目录中的文件。所以为了解决这个问题我们可以使用forever的--workingDir标志来指定进程的实际工作目录。

最终的命令将如下所示:

forever -c "node -r dotenv/config" --workingDir app-workdir-path start app.js

Where app-workdir-path是项目目录的绝对路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node JS 永久加载 dotenv 的相关文章

随机推荐