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 相关文章推荐
JS保留小数点(四舍五入、四舍六入)实现思路及实例
Apr 25 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
JavaScript中函数声明与函数表达式的区别详解
Aug 18 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
JS实现websocket长轮询实时消息提示的效果
Oct 10 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
Feb 22 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
微信小程序实现滚动加载更多的代码
Dec 06 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
有关php运算符的知识大全
2011/11/03 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
分享php多功能图片处理类
2016/05/15 PHP
看了就知道什么是JSON
2007/12/09 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
javascript数组去重小结
2016/03/07 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
JS判断数组那点事
2017/10/10 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
土木工程专业个人求职信
2013/12/30 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
教学改革实施方案
2014/03/31 职场文书
委托书模板
2014/04/04 职场文书
条幅标语大全
2014/06/20 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP