如何让 Netlify 在构建期间创建 .env 文件?或者如何让 dotenv 获取系统变量?
How can I make Netlify create a .env file during build? Or how can I make dotenv pick up system variables?
我在本地有以下工作正常:
// .env
MY_ENV='test'
MY_URL='http://192.168.0.16'
// webpack config
...
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(dotenv.config().parsed)
})
]
但是当我尝试将 MY_ENV
和 MY_URL
与 Netlify 一起使用时,它们是 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,
})
]
我在本地有以下工作正常:
// .env
MY_ENV='test'
MY_URL='http://192.168.0.16'
// webpack config
...
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(dotenv.config().parsed)
})
]
但是当我尝试将 MY_ENV
和 MY_URL
与 Netlify 一起使用时,它们是 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,
})
]