公司新项目使用了cli3,以前的cli2方式就落后了,折腾了一晚上弄好了全局的变量,不得不说比cli2简单易用。由于工程中请求的apiServer至少有5个以上的地址,所以不能简单设置baseUrl,必须设置多个全局变量

1.在vue.config.js的同级新建文件

开发环境 .env.development
生产环境 .env.production
如果项目有sit、uat需求,则还需要自定义对应的名称,在package.json中做对应设置。由于这个项目是公司自己的研发项目,所以暂时未使用。

2.编写文件,设置变量

这里需要注意,全局变量仅除NODE_ENV和BASE_URL这两个保留变量外,其余自定义变量都需使用VUE_APP开头。

NODE_ENV = 'development'//设置环境
VUE_APP_API_MemberCard='http://api/http-service-engine/callServiceByJson/'
VUE_APP_API_Coupon='http://api/http-service-engine/callServiceByJson'
VUE_APP_API_Activite='http://api/http-service-engine/callServiceByJson'
VUE_APP_API_Label='http://api/memberManager/callServiceByJson'
VUE_APP_API_Store='http://api/http-service-engine/callServiceByJson'

3.在工程中使用

到上一步网上都有很多教程,使用时process.env.变量名即可,走到这步满心欢喜的启动工程,结果请求404。

console.log(process.env.VUE_APP_API_MemberCard);

首先输出变量查看,果然是undefined,这说明配置没有生效,然后确实一步一步按照步骤来,最后加班了一个晚上终于发现了问题。
很坑的是,.env.[]文件里不允许存在注释,而所有教程都没提到这一点,并且都带着注释。。
最终这个问题圆满解决,了无牵挂的开心下班。开发环境和生产环境都可使用全局变量请求接口。这之中还遇到了跨域问题,明明后台做了配置,为什么还是不可跨域?这个下次再说

Logo

前往低代码交流专区

更多推荐