Node.js 如何使Netlify在生成期间创建.env文件?或者如何让dotenv拾取系统变量?
我在当地的工作情况如下:Node.js 如何使Netlify在生成期间创建.env文件?或者如何让dotenv拾取系统变量?,node.js,webpack,netlify,dotenv,Node.js,Webpack,Netlify,Dotenv,我在当地的工作情况如下: // .env MY_ENV='test' MY_URL='http://192.168.0.16' //网页包配置 ... 插件:[ 新的webpack.DefinePlugin({ 'process.env':JSON.stringify(dotenv.config().parsed) }) ] 但是当我试着用Netlify使用MY_ENV和MY_URL时,它们是未定义的。我已经在Netlify仪表板的“环境”选项卡上设置了它们 我怀疑dotenv查找的是.en
// .env
MY_ENV='test'
MY_URL='http://192.168.0.16'
//网页包配置
...
插件:[
新的webpack.DefinePlugin({
'process.env':JSON.stringify(dotenv.config().parsed)
})
]
但是当我试着用Netlify使用MY_ENV
和MY_URL
时,它们是未定义的。我已经在Netlify仪表板的“环境”选项卡上设置了它们
我怀疑dotenv
查找的是.env
文件,而不是系统变量
我知道插件dotenv-webpack
允许您使用系统变量,但是dotenv-webpack
是不允许的,因为我需要在浏览器中使用这些变量(它们不是真正的秘密)
有没有办法让Netlify在本地创建一个.env
,这样dotenv
就可以获取它?或者有没有办法让dotenv
使用系统变量
谢谢 只需使用访问环境变量即可
process.env.MY_ENV
process.env.MY_URL
不要覆盖您的进程。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,
})
]
只需使用访问环境变量
process.env.MY_ENV
process.env.MY_URL
不要覆盖您的进程。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,
})
]
嘿我已经这样做了;问题是,dotenv
只拾取.env
中的变量。但是,Netlify没有.env
,因为.env
不会被推送到Github。我想知道dotenv
是否可以获取Netlify的环境变量:/@kibe dotenv是一种使.env
文件感觉像常规环境变量的机制。因此,如果使用真实的环境变量,则根本不需要dotenv。dotenv是一种解决方法。@kibe您可以发布您的示例env吗file@kibe您正在将构建部署到Netlify,因此您应该已经设置了URL,不会在Netlify上运行构建过程。你也可以看看。阅读@TusharGupta curioustushar对,我试过dotenv网页包,但以前没有用过;结果表明,像{MY_ENV}=process.ENV
这样的对象销毁由于某种原因不起作用。现在一切都好了。谢谢嘿我已经这样做了;问题是,dotenv
只拾取.env
中的变量。但是,Netlify没有.env
,因为.env
不会被推送到Github。我想知道dotenv
是否可以获取Netlify的环境变量:/@kibe dotenv是一种使.env
文件感觉像常规环境变量的机制。因此,如果使用真实的环境变量,则根本不需要dotenv。dotenv是一种解决方法。@kibe您可以发布您的示例env吗file@kibe您正在将构建部署到Netlify,因此您应该已经设置了URL,不会在Netlify上运行构建过程。你也可以看看。阅读@TusharGupta curioustushar对,我试过dotenv网页包,但以前没有用过;结果表明,像{MY_ENV}=process.ENV
这样的对象销毁由于某种原因不起作用。现在一切都好了。谢谢是否在构建期间或应用程序启动时运行webpack?webpack是否在prod中运行过?如果没有,环境变量改变基本上已经太晚了,它们会在构建期间烘焙到您的构建中。@Evert它同时在prod和dev中运行;我看到您的评论,您在使用Netlify时不需要dotenv
。所以Netlify已经设置好了,对吗?但是我如何在代码中访问它们呢?我的意思是dotenv包允许您在文件中指定环境变量。Dotenv是一种替代常规环境变量的黑客,与netlify无关。是否在构建期间或应用程序启动时运行webpack?webpack是否在prod中运行过?如果没有,环境变量改变基本上已经太晚了,它们会在构建期间烘焙到您的构建中。@Evert它同时在prod和dev中运行;我看到您的评论,您在使用Netlify时不需要dotenv
。所以Netlify已经设置好了,对吗?但是我如何在代码中访问它们呢?我的意思是dotenv包允许您在文件中指定环境变量。Dotenv是一种替代常规环境变量的黑客,与netlify无关。