问题描述
我在本地有以下工作正常:
// .env
MY_ENV='test'
MY_URL='http://192.168.0.16'
// webpack config
...
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(dotenv.config().parsed)
})
]
但是当我尝试在 Netlify 中使用 MY_ENV
和 MY_URL
时,它们是 undefined
。我已经在 Netlify 仪表板的“环境”选项卡上设置了它们。
我怀疑 dotenv
查找的是 .env
文件,而不是系统变量。
我知道插件 dotenv-webpack
允许您使用系统变量,但 dotenv-webpack
是一个禁忌,因为我需要在浏览器中使用这些变量(它们并不是真正的秘密)。
有什么办法可以让 Netlify 在本地创建一个 .env
,以便 dotenv
可以获取它?或者有什么办法可以让 dotenv
使用系统变量?
谢谢!
解决方法
仅用于访问环境变量
process.env.MY_ENV
process.env.MY_URL
不要覆盖你的 process.env
const myenv = dotenv.config().parsed;
plugins: [
new webpack.DefinePlugin({
MY_ENV: myenv.MY_ENV || process.env.MY_ENV,MY_URL: myenv.MY_ENV || process.env.MY_ENV,})
]