[英]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=dev
或DEV_FLAG=production
來簡化它,並根據DEV_FLAG
可以相應地設置.env
,
.env
文件中使用 if 條件?.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=dev
或DEV_FLAG=prod
並在應用程序中根據其值更改某些行為,但通常我不推薦它,因為它隱藏了后果。
也許您正在一台電腦上開發並想要切換.env
值。 您可以在文件中有更多行並根據需要將它們注釋掉,或者您可以根據需要擁有prod.env
或local.env
文件和cp local.env .env
,同時在.gitignore
中忽略它們。
有關此主題的更多信息,您可以在此處閱讀: https ://www.12factor.net/config
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.