vue-cli3添加模式配置多环境变量的方法


Posted in Javascript onJune 05, 2019

vue-cli3配置多环境变量

先挂官网描述:环境变量和模式

需求

根据运行环境判断执行代码:

  • 预发环境操作完成跳转地址与线上环境跳转地址不同
  • 线上环境添加埋点脚本

实现

Step1:在项目根目录中新建.env.uat

.env.uat配置如下:

VUE_APP_BUILD_TYPE=uat

vue-cli中规定,只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。

代码中可以通过 process.env.VUE_APP_SECRET 这样访问。

NODE_ENV 和 BASE_URL 是两个特殊变量,在代码中始终可用

Step2:修改 package.json

传递 --mode 选项参数为命令行覆写默认的模式。

"scripts": {
  "build": "vue-cli-service build",
  "build:uat": "vue-cli-service build --mode uat"
 }

Step3:使用

// 是否预发部署
const IS_UAT = process.env.VUE_APP_BUILD_TYPE === 'uat'
const _url = IS_UAT ? 'http://a.123.com' : 'http://b.123.com'

// 是否添加埋点
const IS_ADD_JAQ = process.env.NODE_ENV === 'production' && !IS_UAT
if (IS_ADD_JAQ && loginUser) addJaq(loginUser)
 ...

优化

到这,功能已经实现了。

美滋滋地打个包,妈呀,体积也太大了:

vue-cli3添加模式配置多环境变量的方法

此处解决办法为强写 NODE_ENV ,最终.env.uat配置如下:

NODE_ENV=production
VUE_APP_BUILD_TYPE=uat

vue-cli3添加模式配置多环境变量的方法

这样子顺眼些了,但整个项目打包这部分还是有很大的优化空间,下期再干咯~

总结

以上所述是小编给大家介绍的vue-cli3添加模式配置多环境变量的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Gird事件机制初级读本
Mar 10 Javascript
javascript脚本编程解决考试分数统计问题
Oct 18 Javascript
JavaScript 脚本将当地时间转换成其它时区
Mar 19 Javascript
javascript 页面只自动刷新一次
Jul 10 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
让人期待的2011年度最佳 jQuery 插件分享
Mar 16 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
jQuery实现的分子运动小球碰撞效果
Jan 27 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
Sep 26 Javascript
js关于getImageData跨域问题的解决方法
Oct 14 Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 Javascript
Node.js连接Sql Server 2008及数据层封装详解
Aug 27 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
Jun 05 #Javascript
js实现随机8位验证码
Jul 24 #Javascript
Vue中全局变量的定义和使用
Jun 05 #Javascript
详解express使用vue-router的history踩坑
Jun 05 #Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 #Javascript
用webpack4开发小程序的实现方法
Jun 04 #Javascript
JS实现的对象去重功能示例
Jun 04 #Javascript
You might like
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php代码书写习惯优化小结
2013/06/20 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python回调函数用法实例详解
2015/07/02 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
Python IDLE清空窗口的实例
2018/06/25 Python
基于python操作ES实例详解
2019/11/16 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
函授本科自我鉴定
2014/02/04 职场文书
聘用意向书
2014/07/29 职场文书
小学假期安全广播稿
2014/09/28 职场文书
2015年前台接待工作总结
2015/05/04 职场文书