选择语言
durumis AI 总结的文章
- 在 Next.js 中,.env 在构建时被设置,但有时需要根据构建后的运行环境(local、dev、qa、prod)设置环境变量。
- Windows 用户无法使用传统的 Unix 基于脚本,因此需要安装 cross-env 以编写在 Windows 和 Unix 环境下都能运行的脚本。
- 将 cross-env 应用于 start 和 dev 命令以设置环境变量,并简化脚本以提高可读性。
Next.js 中的 .env 在構建時被硬編碼。
但有時在構建完成後運行構建的映像時,需要設置 env,有很多需求。
通常,我們會處理 local、dev、qa、prod 等環境。
那麼我們如何實現它?
大多數情況下,這與以下文章中的內容類似。
但是,上面的文章排斥了 Windows。
從它將 Unix 語法插入 package.json 的腳本中可以看出。
這意味著那些不使用骯髒的 Unix,而是清白、乾淨、富有同情心的 Windows 用戶無法使用上述腳本。
因此,乾淨而富有同情心的 Windows 用戶應該體諒 Unix 用戶,並替換一個可以在兩個操作系統上正常運行的腳本。
解決方案很簡單。
只需插入執行類似語法的腳本即可。
使用上述命令安裝 cross-env。
然後,將上面提到的 start 命令修改如下即可解決。
但是,腳本過長,難以查看,還需要添加到 dev 命令中。
{
"dev": "npm run _env:-local && next dev",
"dev:dev": "npm run _env:dev && next dev",
"start": "npm run _env:-local && next start",
"_env:-local": "cross-env-shell node ./utils/cli.js next-env -e $APP_ENV",
"_env:dev": "node ./utils/cli.js next-env -e dev"
因此,我將其整理成上述形式。