项目是基于vue-cli搭建,项目分为开发环境,测试环境,预生产环境,生产环境,其中开发环境和测试环境调用同一个接口,开发环境调用服务器端的测试接口会跨域,以上需求就引起了一些问题,html
问题一:
测试环境(包括开发环境,而且开发环境跨域),预生产环境,生产环境,有着不一样的接口地址,也就是不一样的开发环境要调用不一样的接口地址,有的时候不一样的开发环境还要调用不一样的全局变量。vue
问题二:
本地开发环境跨域,本地开发环境调用服务器端接口地址,会跨域,可是代码打包上传到服务器,不会跨域
以前的解决方案(没有依赖webpack):
开发环境下,在static下新建一个config文件夹,再新建一个config.js,这是开发版的config,里面包含了开发和测试的接口地址和全局变量,并在index.html中手动引入(static中的文件不被webpack管理)以下webpack
<script src="/static/config/config.js"></script>
将config文件夹上传到测试服务器,开发环境打包后,将index.html中的config.js的路径更改成服务器端的config.js,以下git
<script src="./config/config.js"></script>
同理,预生产环境,生产环境,和测试环境同样,分别配置不一样的config文件,也就是接口地址和全局变量,打包后更改压缩后的index.htmlgithub
这样配置带来了不少问题和不便,要配置不一样的config接口道不一样的服务器,打包后须要手动修改config路径,可是也有一个好处,打包一次,三个环境能够共用,由于config接口在服务器端
以上是开发过程当中,遇到的问题,
后来了解了一下webpack,发现vue-cli中有解决方案,研究一下并作了一下修改,脚手架地址web
根据不一样的环境调用不一样的接口vue-cli