vue 部署后修改配置文件(接口IP)

近期,有一个项目,运维在部署的时候,接口ip还没有确定,而且ip后面的路径一直有变动,导致我这里一天打包至少四五次才行,很麻烦,然后看了下有没有打包后修改配置文件修改接口ip的方法,对比了下,使用以下方法

前提:vue2

方案一:

    在public文件夹新建config.js文件

#config.js
window.config= {ServeUrl:"xx",FileUrl:"xx",
}

   main.js 中配置

 axios.defaults.baseURL = window.config.ServeUrl;

因为此方案灵活性不好,没有测试使用 

方案二(我使用的)

  

   下载generate-asset-webpack-plugin插件 

    本地的配置文件模板config.js(根目录创建)

module.exports = {ServeUrl:"xxx",
}

    vue.config.js配置:

const GenerateAssetPlugin = require('generate-asset-webpack-plugin')
const configs = require('./config')  //引用本地的配置文件// 导出配置文件的内容
var createServerConfig = function(compilation) {return JSON.stringify(Object.assign({_hash: compilation.hash,},configs))
}
module.exports = {publicPath: process.env.VUE_APP_publicPath, lintOnSave: false,productionSourceMap: false, //打包不生成map// devServer: {//   open: true,//   proxy: 'http://localhost:8080'// }chainWebpack(config) {config.plugin('html').tap((args) => {args[0].title = process.env.VUE_APP_Titlereturn args})// 打包生成配置文件config.plugin('GenerateAssetPlugin').use('generate-asset-webpack-plugin', [{filename: 'config.json',//生成的文件fn: (compilation, cb) => {cb(null, createServerConfig(compilation))},extraFiles: [],},])}
}

   本地不同环境打包使用的配置环境

        具体设置看vue .env配置环境变量-CSDN博客

   

NODE_ENV='test'
VUE_APP_publicPath='/eseal/policy'VUE_APP_ServeUrl="x"
VUE_APP_FileUrl="x"

package.json配置

     为了本地环境和线上环境做区分,需要修改默认启动配置

"serve": "vue-cli-service serve --mode test",

main.js配置

if(process.env.NODE_ENV !== 'test'){    //前提是本地运行环境是testaxios({method: 'get',url: process.env.VUE_APP_publicPath+'/config.json',  //文件存放地址}).then(res=>{console.log('读取配置',res);axios.defaults.baseURL = res.data.ServeUrl;Vue.prototype.$ServeUr = res.data.ServeUrVue.prototype.$FileUrl = res.data.FileUrl})
}else{
axios.defaults.baseURL= process.env.VUE_APP_ServeUrl
Vue.prototype.$ServeUr = process.env.VUE_APP_ServeUr
Vue.prototype.$FileUrl = process.env.VUE_APP_FileUrl
}

axios.js 接口请求文件配置

    因为使用全局变量的this获取不到数据,引入vue也不行,就多写了一次,根据不同需求,这个也可以不写的

if(process.env.NODE_ENV !== 'test'){axios({method: 'get',url: process.env.VUE_APP_publicPath+'/config.json',}).then(res=>{console.log('读取配置',res);axios.defaults.baseURL = res.data.ServeUrl;})
}else{
axios.defaults.baseURL= process.env.VUE_APP_ServeUrl
}

 修改配置之后,刷新一下页面即可获取最新的数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/498756.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript的书写方式

JavaScript的书写方式 目前较为流行的是第二种和第三种,第一种很少见。在第二种和第三种推荐使用第三种,因为在日常开发/工作中,第三种是最为常见的 1.行内式 把JS代码嵌入到html元素内部 示例代码 运行效果 由于JS中字符串常量可以使用单引…

函数单调性【高数笔记】

1.函数单调性的定义是什么? 2.函数的单调区间怎么求?分几种求法? 3.函数单调性的题型:求证不等式,与拉氏定理的区别在哪里? 4.在求函数单调区间需要注意的点是什么? 5.什么是驻点?

基于java SSM springboot动物检疫信息管理系统设计和实现

基于java SSM springboot动物检疫信息管理系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末…

初体验通义灵码-JS篇

安装 我是JetBrains IDEs的付费忠粉,使用的他们家的全家桶,故先选择在Webstorm安装通义灵码 按通义灵码的官方指引安装即可:https://tongyi.aliyun.com/lingma/download 使用 安装后重启webstorm,IED左右下会有通义灵码的登录…

如何使用Windows系统电脑无公网ip远程桌面Ubuntu系统

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

【C++】认识类和对象

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、什么是面向对象?二、类的引入三、类的定义四、类的访问限定符与…

VBA代码解决方案第十一讲:在复制单元格区域时,如何仅复制数值

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…

xsslabs第三关

这是htmlspecialchars() 看到这关想到了第二关那我们先用第二关的思路搞一下 "onclick"alert(1) 并没有逃逸出来所以我们还是看一下源代码 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" co…

蓝桥杯-灌溉

参考了大佬的解题思路&#xff0c;先遍历一次花园&#xff0c;找到所有的水源坐标&#xff0c;把它们存入 “水源坐标清单” 数组内&#xff0c;再读取数组里的水源坐标进行扩散。 #include <iostream> using namespace std; int main() {int n,m,t,r,c,k,ans0,list_i0;…

『Linux从入门到精通』第 ㉒ 期 - 动静态库

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f427;什么是库&#xff1f;&#x1f427;为什么要有库&#xff1f;&#x1f427;写一个自己的库&#x1f426;方法一&#x1f426;方法二 静态库&#x1f426;标准化&#x1f426;方法三 动态库&#x1f426;配置动…

ElasticSearch之跨集群搜索cross cluster search

写在前面 本文看下跨集群搜索相关内容。 1&#xff1a;实战 1.1&#xff1a;创建集群 bin/elasticsearch -E node.namecluster0node -E cluster.namecluster0 -E path.datacluster0_data -E discovery.typesingle-node -E http.port9200 -E transport.port9300 bin/elastic…

4-如何进行细分市场的分析-02 细分行业的构成和基本情况

如何快速摸清行业的构成&#xff0c;通常会看同行或自己做过的相似的行业&#xff0c;会根据不同的行业来采用不同的研究方法。对于成熟的行业和不同的行业都会有一些比较通用的研究方式。 假设我们是在分析某一个行业&#xff0c;在分析行业的时候它的本质还是市场分析&#…