没有.env文件时如何使用dotEnv?

时间:2017-06-17 19:54:08

标签: javascript environment-variables

我有一个本地有.env文件的项目。当我在本地机器上设置环境变量时,我使用:

import dotEnv from "dotenv";
dotEnv.config();

找到.env并加载所有变量。当我将项目推送到Heroku时,我没有推高.env文件。我希望dotEnv能够理解这一点,但我收到了这个错误:

{ Error: ENOENT: no such file or directory, open '.env'

我如何解决这个问题?我没有推高.env档案?使用.dotEnv的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

我是dotenv模块的贡献者。您可以放心地忽略此错误。如果某些东西没有按预期工作,则会返回以方便您使用。

答案 1 :(得分:0)

我不太喜欢这里提出的解决方案:https://github.com/motdotla/dotenv/issues/126这相当于有条件地要求/ dotenv,具体取决于所设置的环境变量。这看起来很脆弱,对我来说也是额外的工作。

我发现的最新解决方案并没有对dotenv的任何引用污染我的生产代码。只需在您的开发依赖项中包含dotenv,然后使用节点需要开关在本地运行您的应用程序:

$ node -r dotenv/config ./lib/index.js

这与加载babel-register的方式相同。

现在你的代码并不关心env变量的来源。也适用于nodemon等。您甚至可以指定备用env文件:

$ node -r dotenv/config your_script.js dotenv_config_path=/custom/path/to/your/env/vars

这一切都在包的npm页面上。