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读取RSS数据
Jan 20 Javascript
基于JQuery的Pager分页器实现代码
Jul 17 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
Mar 17 Javascript
jQuery实现下拉框左右选择的简单实例
Feb 22 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
vue-cli项目中怎么使用mock数据
Sep 27 Javascript
微信小程序静默登录的实现代码
Jan 08 Javascript
详解JavaScript 异步编程
Jul 13 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分页函数
2006/10/09 PHP
PHP4实际应用经验篇(3)
2006/10/09 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
php xhprof使用实例详解
2019/04/15 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
学生会主席竞聘书
2014/03/31 职场文书
募捐倡议书
2014/04/14 职场文书
表彰大会策划方案
2014/05/13 职场文书
服务理念标语
2014/06/18 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
2014年图书室工作总结
2014/12/09 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
交通事故起诉书
2015/05/19 职场文书
农村婚庆主持词
2015/06/29 职场文书
班级班风口号大全
2015/12/25 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书