Vue 2.7读取操作系统环境变量的问题
Vue 2.7读取操作系统环境变量的问题
看起来你遇到的问题是Vue项目优先读取了.env文件里的变量值,而不是你操作系统中定义的环境变量。我来帮你梳理下原因和解决办法:
先明确Vue CLI的核心规则(Vue 2.7通常搭配Vue CLI)
Vue CLI只会把以VUE_APP_开头的环境变量注入到你的应用中,不管是系统环境变量还是.env文件里的。而且理论上,系统环境变量的优先级是高于.env文件的,但你现在没读到系统变量,大概率是以下几个原因:
可能的原因&解决步骤
系统环境变量没加
VUE_APP_前缀
如果你在操作系统里定义的变量名是GATEWAY_ADDRESS_TEST_TWO而不是VUE_APP_GATEWAY_ADDRESS_TEST_TWO,那Vue CLI根本不会把它注入到应用里,自然只会读.env里的gwatt。赶紧给系统变量加上这个前缀试试。终端没重启,系统变量没生效
如果你是在打开终端之后才设置的系统环境变量,那这个终端是读不到新变量的。你得把当前启动Vue项目的终端关掉,重新打开一个新终端,再启动项目,这样系统变量才能被读取到。先验证终端里的变量是否生效
重启终端后,先别着急启动项目,先在终端里验证下变量是否能被读取到:- Windows(cmd)里输入:
echo %VUE_APP_GATEWAY_ADDRESS_TEST_TWO% - Windows(PowerShell)里输入:
echo $env:VUE_APP_GATEWAY_ADDRESS_TEST_TWO - Linux/macOS里输入:
echo $VUE_APP_GATEWAY_ADDRESS_TEST_TWO
如果输出的是你设置的GAT,说明变量没问题,再启动Vue项目就能读到系统变量了。
- Windows(cmd)里输入:
补充说明
如果上面的步骤都做了还是读不到系统变量,那你可以检查下是不是在vue.config.js里做了一些自定义的环境变量配置,可能影响了默认的加载逻辑。不过这种情况比较少见,先把前面几个基础问题排查了再说。
备注:内容来源于stack exchange,提问作者Djole Pi
相关产品推荐
相关产品推荐

