umi中怎么设置总定义的环境变量呢?
在package.json中有如下代码
"scripts": {
"start": "cross-env APP_KEY=123 umi dev"
}
在项目中为什么打印 console.log(process.env) 只有一个 NODE_ENV=development,没有APP_KEY
要怎么样才能获取到 APP_KEY这个自定义的变量呢?
要用define穿透一下,例如:
"define": {
"process.env.APP_KEY": 123,
}
要用define穿透一下,例如:
"define": { "process.env.APP_KEY": 123, }
console.log(process.env) 只能看到 NODE_ENV 的值,console.log(process.env.APP_KEY) 可以看到在 define 中设置的值
要用define穿透一下,例如:
"define": { "process.env.APP_KEY": 123, }
console.log(process.env)只能看到 NODE_ENV 的值,console.log(process.env.APP_KEY)可以看到在 define 中设置的值
我也是卡这里了,打印process.env死活拿不到值,直到看到你这句话,打印出来一看一脸懵逼
后来翻了下,应该是用的webpack defineplugin直接将console.log(process.env.APP_KEY)这句给做了字符串替换,直接搞成了console.log(123),讲真,我觉得这里直接使用process.env.APP_KEY来做定义对不熟悉defineplugin的人来说真的太容易引起歧义了
要用define穿透一下,例如:
"define": { "process.env.APP_KEY": 123, }
console.log(process.env)只能看到 NODE_ENV 的值,console.log(process.env.APP_KEY)可以看到在 define 中设置的值我也是卡这里了,打印process.env死活拿不到值,直到看到你这句话,打印出来一看一脸懵逼
后来翻了下,应该是用的webpack defineplugin直接将console.log(process.env.APP_KEY)这句给做了字符串替换,直接搞成了console.log(123),讲真,我觉得这里直接使用process.env.APP_KEY来做定义对不熟悉defineplugin的人来说真的太容易引起歧义了
大哥,到底怎样取APP_KEY的值啊,process.env打印出来只有NODE_ENV
要用define穿透一下,例如:
"define": { "process.env.APP_KEY": 123, }
console.log(process.env)只能看到 NODE_ENV 的值,console.log(process.env.APP_KEY)可以看到在 define 中设置的值我也是卡这里了,打印process.env死活拿不到值,直到看到你这句话,打印出来一看一脸懵逼
后来翻了下,应该是用的webpack defineplugin直接将console.log(process.env.APP_KEY)这句给做了字符串替换,直接搞成了console.log(123),讲真,我觉得这里直接使用process.env.APP_KEY来做定义对不熟悉defineplugin的人来说真的太容易引起歧义了大哥,到底怎样取APP_KEY的值啊,process.env打印出来只有NODE_ENV
对啊,process.env打印出来就只有NODE_ENV
因为你自定义的process.env.APP_KEY被webpack整体当做一个字符串给进行了替换
等价于你以为你写的是console.log(process.env.APP_KEY),实际上这句话被webpack给变成了console.log(123),所以我说这里使用process.env来做定义会引起歧义
要用define穿透一下,例如:
"define": { "process.env.APP_KEY": 123, }
console.log(process.env)只能看到 NODE_ENV 的值,console.log(process.env.APP_KEY)可以看到在 define 中设置的值我也是卡这里了,打印process.env死活拿不到值,直到看到你这句话,打印出来一看一脸懵逼
后来翻了下,应该是用的webpack defineplugin直接将console.log(process.env.APP_KEY)这句给做了字符串替换,直接搞成了console.log(123),讲真,我觉得这里直接使用process.env.APP_KEY来做定义对不熟悉defineplugin的人来说真的太容易引起歧义了大哥,到底怎样取APP_KEY的值啊,process.env打印出来只有NODE_ENV
�对啊,process.env打印出来就只有NODE_ENV
因为你自定义的process.env.APP_KEY被webpack整体当做一个字符串给进行了替换
等价于你以为你写的是console.log(process.env.APP_KEY),实际上这句话被webpack给变成了console.log(123),所以我说这里使用process.env来做定义会引起歧义
那不同环境的变量define定义在哪呢
@mov1er 没明白你意思
@mov1er 您好我也遇上了相同的问题,请问您解决了吗
@mov1er 您好我也遇上了相同的问题,请问您解决了吗
"define": {
"process.env.APP_KEY": process.env.APP_KEY,
}
console.log(process.env.APP_KEY) 你就明白了
这个实在太坑了,我找了一上午解决问题。
那怎么拿到不同环境下的变量的值啊,比如我development环境下 设置了APP_KEY的值是123,production设置的APP_KEY的值是456 ,那我怎么拿到不同环境下对应的值呢?
需要这样透传:
define: {
"process.env.SERVER": process.env.SERVER,
},
那怎么拿到不同环境下的变量的值啊,比如我development环境下 设置了APP_KEY的值是123,production设置的APP_KEY的值是456 ,那我怎么拿到不同环境下对应的值呢?
你怎么设置的,又是怎么拿的?贴一下代码
Most helpful comment
需要这样透传: