簡體   English   中英

沒有.env文件時,如何使用dotEnv?

[英]How do I use dotEnv when there is no .env file?

我有一個本地有.env文件的項目。 在本地計算機上設置環境變量時,我使用:

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

它找到.env並加載所有變量。 當我將項目推送到Heroku時,我不會推送.env文件。 我希望dotEnv能夠理解這一點,但是卻出現此錯誤:

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

如何避免我沒有推送.env文件? 使用.dotEnv的正確方法是什么?

我是dotenv模塊的貢獻者。 您可以放心地忽略此錯誤。 為方便起見,將其返回,以防萬一某些功能無法正常工作。

我不太喜歡這里提出的解決方案: https : //github.com/motdotla/dotenv/issues/126這等於根據設置的環境變量有條件地要求/ dotenv。 這似乎很脆弱,並且對我來說像是額外的工作。

我發現的最整潔的解決方案完全不會污染任何dotenv的引用。 只需在您的開發依賴項中包含dotenv,然后使用節點require開關在本地運行您的應用即可:

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

這與加載babel-register的方式相同。

現在,您的代碼不再關心env變量的來源。 也可以與nodemon等一起使用。 您甚至可以指定一個備用環境文件:

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

全部在軟件包的npm頁面上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM