vue-cli项目中生成免打包的配置文件,直接在配置文件中修改url地址刷新页面即可更改请求域名地址,不需重新打包

需求:

在打包成功之后在dist中会生成一个配置文件,配置文件中包含要请求的地址,通过直接修改配置文件中的地址即可成功修改请求地址,不需要再重新打包。

方便在不同环境下运维修改地址之后可以直接部署,避免重复打包的工作。与本地代码地址不冲突。

 

实现代码:

1.public文件夹下新建一个config.js文件,与index.html同级:

const Glod = {
  // baseURL: 'https://ltnapii.cloudcc.com/api',
  // baseURLNoApi: 'https://ltnapii.cloudcc.com/',
  baseURL: 'https://ccapi-gwi.cloudcc.com/api',
  baseURLNoApi: 'https://ccapi-gwi.cloudcc.com/',
}

exports = Glod

2.index.html中引入该js文件:

index.html为项目的根文件,即入口文件。

<script type="text/javascript" src="./config.js"></script>

3.vue.config.js中require该js文件:

const Glod = require('./public/config') // 配置文件

target: Glod.baseURL, //服务器

4.main.js中全局定义:

Vue.prototype.$baseConfig = Glod; 

5.其他js、vue文件中使用:

baseURL: Glod.baseURLNoApi,

this.$baseConfig.baseURL;

此时,代码就写完了,在打包成功之后dist文件夹下会生成创建的config.js文件,但该文件与public下的config.js不是同一个文件,在修改dist下的配置文件时,并不会修改public下的配置文件,但是请求地址会改变。因为app.js文件里的地址是用的定义的Glod常量,不是写死的地址。

 

测试:

测试修改dist中配置文件地址时是否生效:

1.安装http-server或者anywhere 搭建web服务器环境(建议使用anywhere)

npm install anywhere -g

2.在dist打开命令行输入anywhere,浏览器会自己打开,那么你打包好的项目就相当于在服务器上运行了,这时你再修改config.js里面的地址,刷新网页,可通过查看接口访问地址是否更改为自己设置的地址,此时可验证代码是否配置成功。

 

注意:

1.在public下的配置文件中定义了一个常量Glod,在引入index.html中后成为全局常量,除了vue.config.js中不能访问到,其他文件中均可以访问。之所以在main.js中又定义了一个全局变量baseConfig是为了保持统一,在.vue文件中需要使用地址时直接通过this.$baseConfig来访问。

2.我用的是vue-cli4.4.6,不同版本的脚手架创建config.js文件的位置不同,可自行百度,但设置方式基本相同。

3.参考链接:

https://blog.csdn.net/qq_39241544/article/details/106791093

https://blog.csdn.net/qq_41772754/article/details/88106508

https://www.cnblogs.com/xiaolucky/p/12929720.html

 

posted @ 2020-12-01 17:21  苏小落  阅读(2008)  评论(0编辑  收藏  举报