我要做的是将环境变量设置为CRA,但使用webpack。我创建了两个像CRA一样的env文件。.env.development
和.env.production
。这两个文件在CRA工作。我在webpack
配置文件中使用dotenv-webpack
来设置process.env
变量,如下面的代码。它可以在本地主机上运行,但不能在生产中运行。
const Dotenv = require("dotenv-webpack")
const isProduction = process.env.NODE_ENV === "production"
//webpack config
modules.exports = {
...
plugins: [
new Dotenv({
path: `./.env.${isProduction ? "production" : "development"}`,
}),
...
]
...
}
在package.json
上,我使用:
"scripts": {
"build": "cross-env NODE_ENV=production webpack",
"start": "cross-env NODE_ENV=development webpack serve"
}
所以我可以在webpack上得到正确的isProduction
变量。
谁能帮我修一下?
首先,你的.env
文件永远不应该推送到你的git repo上。所以指定路径是没有用的。您应该直接在docker配置中输入这些变量,或者在netflix/Heroku的环境变量区域中输入这些变量。然后让你的dotenv插件在生产中工作,只需添加:
new Dotenv({ systemvars: true }),