我使用创建反应应用程序引导我的应用程序。
我添加了两个。env文件。env.development和。env。生产在根。
我的. environment .development包括:
API_URL=http://localhost:3000/api
CALLBACK_URL=http://localhost:3005/callback
当我运行我的应用程序使用反应脚本启动和控制台进程。环境,它吐出
{ NODE_ENV: "development", PUBLIC_URL: "" }
我尝试了不同的事情,但它只是不拾起我的开发文件,我做错了什么?!
领导结构为:
/.env.development
/src/index.js
包中。Json脚本是:
"start": "export PORT=3005; npm-run-all --parallel server:start client:start",
"client:start": "export PORT=3005; react-scripts start",
"server:start": "node server.js",
"build": "react-scripts build",
编辑:
@jamcreencia正确地指出我的变量应该以REACT_APP为前缀。
编辑2
如果我将文件命名为。env,它就可以工作,但如果我使用。env.development或。end.production就不行
如果你想使用多个环境,比如。environment .development . environment .production
使用dotenv-cli包
添加.env.development和.env。项目根文件夹中的生产
还有package.json
"scripts": {
"start": "react-app-rewired start",
"build-dev": "dotenv -e .env.development react-app-rewired build",
"build-prod": "dotenv -e .env.production react-app-rewired build",
"build": "react-app-rewired build",
"test": "react-app-rewired test --env=jsdom",
"eject": "react-scripts eject"
},
然后根据环境来建造
npm run-script build-dev
为此,有env-cmd模块。安装通过npm npm i env-cmd然后在你的包。Json文件在脚本部分:
"scripts": {
"start": "env-cmd .env.development react-scripts start",
"build": "GENERATE_SOURCEMAP=false env-cmd .env.production react-scripts build",
}
在你的项目根目录中,你必须创建两个env变量相同但值不同的文件:
.env.development
.env.production
那就把他们排除在公众之外。在你的.gitignore文件中添加两行:
.env.development
.env.production
因此,这是为dev和prod使用不同的env变量的正确方法。