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陷阱清单
May 31 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
Oct 23 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
jquery仿京东商品放大浏览页面
Jun 06 jQuery
浅谈ES6新增的数组方法和对象
Aug 08 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中的一个中文字符串截取函数
2007/02/14 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
介绍一下gcc特性
2012/01/20 面试题
仓库门卫岗位职责
2013/12/22 职场文书
群众路线剖析材料
2014/02/02 职场文书
食品安全检查制度
2014/02/03 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
关于运动会的广播稿
2014/09/22 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
中学团支部工作总结
2015/08/13 职场文书
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript