我需要为每个开发/生产服务器加载一个不同的.env文件。
Dev/Prod Server | .env file
---------------------------------------------
localhost | .env.development.local
development | .env.development
qa | .env.qa
production | .env.production
所以,我试图以这种方式编辑package.json
"start-js": "react-scripts start .env.development.local",
"start": " npm-run-all -p watch-css start-js",
"build:dev": "npm run build-css && react-scripts build .env.development",
"build:qa": "npm run build-css && react-scripts build .env.qa",
"build:pro": "npm run build-css && react-scripts build .env.production"
但是如果我执行build:*
命令,加载的文件总是.env.production,因为NODE_ENV是生产的。是否可以使用"build:*
命令加载其他.env文件?
答案 0 :(得分:2)
我使用react-app-env解决了我的问题并重命名.env文件。
Dev/Prod Server | .env file
---------------------------------------------
qa | qa.env
例如,build:qa
脚本变为:
"build": "npm run build-css && react-scripts build",
"build:qa": "react-app-env --env-file=qa.env build"
答案 1 :(得分:0)
我是switchenv的作者。这是一个命令行工具,用于从Keepass条目(注释字段中的内容)中快速切换.env文件
仅运行yarn switchenv development
将会替换您的.env
文件。
运行yarn switchenv production
并将您的.env
文件替换为生产文件。
基本上,所有.env文件都作为条目存储在Keepass文件中。每个条目的.env文件的内容应存储在“注释”字段中。使用switchenv
读取该Keepass文件,并将.env
文件替换为条目的注释。