vue-cli配置环境变量的方法


Posted in Javascript onJuly 09, 2018

在实际项目开发中,经常会碰到需要环境变量的情景,在vue-cli的环境下,默认已经配置了一个NODE_ENV的环境变量,当npm run dev的时候这个是development, 当npm run build 的时候这个是production.用过vue-cli开发的通常对这个都不陌生,用这个最多的基本就是我们配置ajax请求的域名头了,

if (process.env.NODE_ENV === 'production') {
 axios.defaults.baseURL = 'http://customer.medsci.cn'
}

通常会有测试服务器和正式服务器环境之分,我们请求的域名也得区分,所以通过proces.env.NODE_ENV来区分环境变量,通过这个能够全局访问的参数,我们可以处理很多需要环境处理不同的操作.

上面的process.env.NODE_ENV是vue-cli默认配置的,有时候我们可能觉得光是只有一个开发环境和生产环境还不够,比如我们还想来一个测试坏境,这时候就需要自己定义了.以下以windows坏境为例,mac环境类似.

首先可以安装cross-env

npm install cross-env --save-dev

vue-cli的配置本质就是webpack的配置,当我们运行npm run dev 的时候,其实执行的是package.json中的scripts 的dev中 ,即build/dev-server.js 这里面一系列的配置启动整个服务.

vue-cli配置环境变量的方法

我们只想加一个环境变量,可以复制一份,在dev下加一个devtest命令:

"devtest": "cross-env TESTING=true node build/dev-server.js",

这样我们就可以通过npm run devtest也能启动整个服务了,注意上面的命令,我们加了一个TESTING=true ,这个就是加入的环境变量,TESTING:true, 通过上面的devtest的配置,我们可以运行npm run devtest像nppm run dev那样运行起来整个程序,不过我们发现,此时在项目中我们获取不到process.env.TESTING这个变量,这是为什么呢,如果是直接用webpack是可以的,经过查看,是在vue-cli的一系列配置文件中,已经写死了这些,不过我们可以改动加上

在根目录 config下,有dev.env.js和prod.env.js,这两个文件就是关键了,我们在NODE_ENV下面加一行TESTING:process.env.TESTING

module.exports = {
 NODE_ENV: '"production"',
 TESTING: process.env.TESTING
}

这时我们就能全局访问process.env.TESTING变量了,当我们npm run dev的时候,这个是undefined,当npm run devtest的时候是true, 同理我们可以添加一个npm run test命令, 与npm run build命令对应,加入打包测试的环境变量.

vue-cli的配置本质还是webpack的配置, 普通的webpack配置也可以采用此方法.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中的window.location.search方法简介
Sep 02 Javascript
JavaScript日期时间与时间戳的转换函数分享
Jan 31 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
Bootstrap实现的标签页内容切换显示效果示例
May 25 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
vue生命周期实例小结
Aug 15 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 Javascript
vue实现商城秒杀倒计时功能
Dec 12 Javascript
react 不用插件实现数字滚动的效果示例
Apr 14 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
Apr 19 Javascript
JS逻辑运算符短路操作实例分析
Jul 09 #Javascript
微信小程序中时间戳和日期的相互转换问题
Jul 09 #Javascript
使用async await 封装 axios的方法
Jul 09 #Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
Jul 09 #Javascript
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 #jQuery
JS实现图片旋转动画效果封装与使用示例
Jul 09 #Javascript
JavaScript的Object.defineProperty详解
Jul 09 #Javascript
You might like
关于PHP堆栈与列队的学习
2013/06/21 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
JAVASCRIPT keycode总结
2009/02/04 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
心理健康教育心得体会
2013/12/29 职场文书
简历里的自我评价范文
2014/02/24 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
三峡大坝导游词
2015/01/31 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android