在使用Create Reaction App(内部使用webpack)时,我们可以在package.json
的脚本部分指定环境变量,例如:
"scripts": {
"build:a": "REACT_APP_ENV=version-a react-scripts --openssl-legacy-provider build",
"build:b": "REACT_APP_ENV=version-b react-scripts --openssl-legacy-provider build"
},
然后可以在运行时使用这些环境变量,如下所示:
// Logs "version-a" or "version-b", depending on which script was used to build the app
console.log(process.env.REACT_APP_ENV);
如何在not个使用Create Reaction App的项目中实现相同的功能?
以下是我的版本:
"scripts": {
"serve:production": "REACT_APP_ENV=version-a && webpack --config ./bundler/webpack.prod.js && serve ./dist -l 4000",
},
我运行的是MacOS操作系统.Zsh和bash我都试过了.我使用的是webpack(v5.88.2).记录process.env.REACT_APP_ENV
的结果始终为undefined
.
我在.env
个文件中设置的环境变量工作得很好;为此我使用dotenv-webpack
插件.问题具体存在于package.json
中设置的环境变量(如上所示).