位置: IT常识 - 正文

vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)(vue调用同一个组件)

编辑:rootadmin
vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)

推荐整理分享vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)(vue调用同一个组件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue项目根据不同环境切换登录不同系统,vue根据不同用户跳转到不同页面,vue多个项目,vue项目根据不同环境切换登录不同系统,vue根据不同条件import,vue根据不同用户跳转到不同页面,vue项目根据不同环境切换登录不同系统,vue根据不同用户跳转到不同页面,内容如对您有帮助,希望把文章链接给更多的朋友!

在项目的开发过程中,我们常常会遇到根据不同的环境需要切换不同的ip的问题,例如在项目部署到测试服时需要将接口请求ip替换成测试服的ip,部署到正式服时又需要将接口请求ip替换成正式服对应的ip,有些公司还有预发环境等,这样在每次部署不同环境的项目前都需要先手动切换ip,这样既繁琐又易出错。本篇文章就记录了本人在解决这一问题的详细步骤。

配置步骤1.在项目的根目录下新建 .env.xxx 文件

vue脚手架创建的项目默认目录结构如下:

根据环境个数在根目录下新增 .env.xxx 文件

 如上,三个 .env.xxx 文件后缀名(文件后缀名可自定义)为development、production、test,可分别对应为开发环境、生产环境和测试环境。如果还需要预发环境,则还可继续新增一个 .env.pre 文件代表预发环境。

每个环境都会加载的变量

如果还需要设置每个环境都需要加载的变量,则可以添加 .env 文件,如果没有,则可以不建此文件。(即每个环境对应变量的变量值都是一样的时候,则可以将变量定义在公用的.env文件中,而对应每个环境的 .env.xxx文件中则不需要再重复定义此变量)

2.在对应环境的 .env.xxx 文件中添加变量

在.env.xxx 文件中只有 NODE_ENV,BASE_URL 和以 VUE_APP_ 开头的变量会通过 webpack.DefinePlugin 静态地嵌入到客户端侧的代码中。

NODE_ENV : 主要用于标识当前的环境BASE_URL: vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径VUE_APP_* : 自定义变量vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)(vue调用同一个组件)

.env.development(开发环境) 文件代码

.env.production(生产环境) 文件代码

.env.test(测试环境) 文件代码

.env(所有环境都会加载的变量) 文件代码

3.package.json 文件配置对应环境打包命令

vue脚手架创建的项目默认配置如下:

vue-cli-service serve:配置默认是使用的development对应环境的环境变量(当然也可以自己手动指定对应的环境,在现有命令后面加上 --mode development即可,完整命令:vue-cli-service serve --mode development), 也就是说执行npm run serve,会将.env.development文件和.env文件里面的变量加入项目代码中vue-cli-service build:配置默认是使用的production对应环境的环境变量, 也就是说执行npm run build,会将.env.production文件和.env文件里面的变量加入项目代码中

添加测试服打包命令(运行命令:npm run build:test)

在package.json文件中的 scripts 对象中添加如下代码:

 vue-cli-service build --mode test :命令中的test对应的是 .env.xxx文件中设置NODE_ENV变量的值,如果没有设置NODE_ENV变量,则默认以 .env.xxx 文件的后缀名为准,如果也找不到.env.test文件,则打包报错,

如果想在本地直接使用测试服的环境变量也可以在package.json 中再配置项目启动命令,配置如下(运行命令:npm run serve:test):

 或者直接修改现有serve 的运行模式: 

配置完成后如何在项目中使用在请求js文件中,可用于替换请求接口的ip,达到根据不同的环境请求不同的ip的效果在vue文件中,可当作全局变量使用,类似于在vue中定义的全局常量在vue.config.js文件中使用,可用于判断当前的打包环境,根据不同的环境进行一些打包优化配置vue-cli的index.html中使用,可用于加载公司统一定义的一些js、css等头部文件(需根据各个环境引入各自的js和css)1.请求接口的js文件/vue页面中使用 语法:process.env.变量名称

2.vue.config.js中根据环境变量判断打包环境,进行打包优化配置:

3.在vue-cli的index.html中使用

语法:<%= 变量名 %> html中根据不同环境,加载不同css/js文件

//css文件<link rel="stylesheet" href="<%= VUE_APP_API %>/header/head.css" rel="external nofollow" >//js文件<script type="text/javascript" src="<%= VUE_APP_API %>/footer.js"></script>

html中根据不同环境,加载不同本地js代码

<% if (process.env.NODE_ENV === 'production' ) { %> <script> window.test = 'xxxx' </script><% } %>

本文链接地址:https://www.jiuchutong.com/zhishi/295946.html 转载请保留说明!

上一篇:Bert 得到中文词向量(bert获取中文词向量)

下一篇:利用Matlab进行图像分割和边缘检测(利用matlab作图)

  • 腾讯连续包月自动扣费怎么取消(腾讯连续包月自动续费怎么取消)

    腾讯连续包月自动扣费怎么取消(腾讯连续包月自动续费怎么取消)

  • 苹果11电池容量(苹果11电池容量多大)

    苹果11电池容量(苹果11电池容量多大)

  • 小米10怎么看屏幕是不是三星(小米10怎么看屏幕是三星还是国产)

    小米10怎么看屏幕是不是三星(小米10怎么看屏幕是三星还是国产)

  • 华为Nova5视频在哪个文件夹(华为nova5坼机视频)

    华为Nova5视频在哪个文件夹(华为nova5坼机视频)

  • imap账户qq的密码(imap.qq的密码是什么)

    imap账户qq的密码(imap.qq的密码是什么)

  • 华为手机保修期怎么算(华为手机保修期内可以免费换电池吗)

    华为手机保修期怎么算(华为手机保修期内可以免费换电池吗)

  • 在word标准模板中,正文的默认中文字体为(在word标准模板中正文的默认中文字体)

    在word标准模板中,正文的默认中文字体为(在word标准模板中正文的默认中文字体)

  • 电脑打开应用程序很慢(电脑打开应用程序错误是怎么回事)

    电脑打开应用程序很慢(电脑打开应用程序错误是怎么回事)

  • 小米手环怎么取下来充电(小米手环怎么取下来换表带)

    小米手环怎么取下来充电(小米手环怎么取下来换表带)

  • nex3和nex3s有什么区别(nex3与nex3s的区别)

    nex3和nex3s有什么区别(nex3与nex3s的区别)

  • 1.5v干电池电流多大(1.5V干电池电流范围)

    1.5v干电池电流多大(1.5V干电池电流范围)

  •  novell netware是什么软件(novell是什么)

    novell netware是什么软件(novell是什么)

  • 三星s10有什么特别功能(三星s10有什么新功能)

    三星s10有什么特别功能(三星s10有什么新功能)

  • 荣耀9x有没有隐私空间(荣耀9x有没有隐藏空间)

    荣耀9x有没有隐私空间(荣耀9x有没有隐藏空间)

  • word中竖线符号怎么打(word中竖线符号怎么去掉)

    word中竖线符号怎么打(word中竖线符号怎么去掉)

  • 流量限速后能玩微信吗(流量限速后能玩游戏吗)

    流量限速后能玩微信吗(流量限速后能玩游戏吗)

  • iphone11外形尺寸(iphone11外形尺寸大小)

    iphone11外形尺寸(iphone11外形尺寸大小)

  • 二维码扫一扫使用了什么识别方式(二维码扫一扫使用了什么识别功能)

    二维码扫一扫使用了什么识别方式(二维码扫一扫使用了什么识别功能)

  • 微博点赞怎么不让别人看到(微博点赞怎么不显示在主页)

    微博点赞怎么不让别人看到(微博点赞怎么不显示在主页)

  • 华为mate20充电时间(华为mate20充电断断续续)

    华为mate20充电时间(华为mate20充电断断续续)

  • 苹果8p红色特别版有什么区别(苹果8p红色特别版价格)

    苹果8p红色特别版有什么区别(苹果8p红色特别版价格)

  • 黑胶cd和普通cd区别(黑胶cd和普通cd哪个音质好)

    黑胶cd和普通cd区别(黑胶cd和普通cd哪个音质好)

  • Win10 2009专业版使用网络适配器重置修复Wi-Fi(win10专业版版本号2009)

    Win10 2009专业版使用网络适配器重置修复Wi-Fi(win10专业版版本号2009)

  • python生成器中的send()方法和next()方法(python中生成器的作用)

    python生成器中的send()方法和next()方法(python中生成器的作用)

  • 营业税是什么意思 视频
  • 所得税费用会影响营业利润吗
  • 简易计税36个月不能变指的是这个项目吗?
  • 报验户预缴个税怎么算
  • 8000块电脑大概能跑多少分
  • 包工包料的税率2023
  • 累计赡养老人专项扣除6000
  • 已经报销的发票还会查吗
  • 公司老账怎么处理
  • 税收完税证明分为几种
  • 税控减免税结转怎么操作
  • 当月确认收入下月开票
  • 发票报销的补助是否缴纳个人所得税?
  • 过路费去年的票还可以用吗
  • 起征点是什么意思举例子说明
  • 发票作废相关规定
  • 异地不动产租赁 深圳税务 所得税
  • 质押贷款属于什么贷款
  • 所得税报表怎么申报
  • 购置税和购车税一样吗
  • 其他应付款辅助核算怎么挂
  • 苹果手机系统更新在哪里找
  • 单位外币账户
  • 出口退税率为0%退税收入怎么算
  • 冲销以前年度多做的其他应收款
  • 退款给客户怎么写分录
  • 出租厂房折旧可以税前扣除
  • schupd.exe - schupd是什么进程 有什么用
  • PHP:Memcached::prependByKey()的用法_Memcached类
  • 控股公司的账务处理
  • 商品房契税申报是增量房申报吗
  • yii2关联查询
  • 现金支票提取备用金会计处理
  • 母子公司吸收合并税务处理
  • framework怎么更新
  • 预训练的目的
  • ps去水印的三种方法
  • 个税可以补申报几个月的码
  • 哪些增值税发票不可以抵扣
  • 资金账簿印花税怎么算
  • 什么经营范围可以开门票发票
  • python函数如何返回列表
  • 单位购买防疫物资会议纪要
  • 企业所得税汇算清缴表
  • 公司月报和季报
  • 企业所得税的营业收入包括营业外收入吗
  • 如何在个人所得税app上修改扣缴义务人
  • 企业注销时实收资本怎么处理
  • 企业设备融资是什么意思?
  • 应收账款计提减值准备会计处理
  • 信用卡账单最低还款额是什么意思
  • 股权转让如何缴纳个人所得税举例说明
  • 新开办的企业怎么做账
  • 应付票据贴现利息收入会计分录
  • 公司汽车上牌费用多少
  • 期末自动结转期间损益
  • 税前扣除是什么时候开始的
  • mysql5.7解压版安装
  • mysql搜索字段内容
  • freebsd怎么安装
  • solaris的vi编辑
  • win8升win8.1
  • window8开机
  • 装系统无法选择
  • 使用权资产
  • python必学的os模块详解
  • js中document.write
  • 模板创造
  • unity ui图层
  • js 箭头表达式
  • shell的使用
  • js基础知识
  • Python如何判断数据类型
  • javascript如何学
  • python日志类
  • android,ios,apicloud 同时开发两个平台应用,方便简单一体化,自带svn,云编译,中文IDE
  • 新疆地方税务局举报电话
  • 国外工资个人所得税
  • 告知承诺和非告知承诺
  • 税务征收社保费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设