簡體   English   中英

用於開發和生產的不同 .env 內容

[英]Different .env content for development and production

我有一個.env文件(我使用的是 next.js 和 node.js,每個都有自己的.env ),其中一些內容對於開發和部署是不同的。

對於開發:

DOMAIN_URL=https://localhost:3000
GOOGLE_CLIENT_ID='abc'

對於部署:

DOMAIN_URL=https://www.example.com
GOOGLE_CLIENT_ID='def'

我希望通過設置一個標志DEV_FLAG=devDEV_FLAG=production來簡化它,並根據DEV_FLAG可以相應地設置.env

  1. 但是如何在.env文件中使用 if 條件?
  2. 或者是否有更好的方法來為不同的上下文設置.env

.env文件並不意味着要在 repo 中提交。 它是在運行應用程序之前添加的。 VCS 應該通過將.env行添加到.gitignore.hgignore文件來忽略它。

.env文件包含潛在的秘密值,您不希望將它們放在 repo 中供所有人查看。

您可以為部署者提交example.env以查看哪些 env 變量可用。 Deployer/DevOp 將運行cp example.env .env ,然后編輯.env文件並運行應用程序。

您可以在加載.env文件之前提交default.env並將其加載到應用程序中,以獲取測試或某些通用(本地主機)部署環境的一些理智而不是秘密的默認值。

但是.env文件在每次部署中都應該是原始文件。

您可以設置一些標志DEV_FLAG=devDEV_FLAG=prod並在應用程序中根據其值更改某些行為,但通常我不推薦它,因為它隱藏了后果。

也許您正在一台電腦上開發並想要切換.env值。 您可以在文件中有更多行並根據需要將它們注釋掉,或者您可以根據需要擁有prod.envlocal.env文件和cp local.env .env ,同時在.gitignore中忽略它們。

有關此主題的更多信息,您可以在此處閱讀: https ://www.12factor.net/config

暫無
暫無

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

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