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 相关文章推荐
不能再简单的无闪刷新验证码原理很简单
Nov 05 Javascript
Extjs中ComboBox加载并赋初值的实现方法
Mar 22 Javascript
js二维数组排序的简单示例代码
Jan 24 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
Dec 21 Javascript
简单实现js点击展开二级菜单功能
May 16 Javascript
关于axios不能使用Vue.use()浅析
Jan 12 Javascript
Vue.set()实现数据动态响应的方法
Feb 07 Javascript
vue中使用echarts制作圆环图的实例代码
Jul 27 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 Javascript
vue 根据数组中某一项的值进行排序的方法
Aug 30 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
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
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
python超简单解决约瑟夫环问题
2015/05/12 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
如何使用python代码操作git代码
2020/02/29 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
Python extract及contains方法代码实例
2020/09/11 Python
is_file和file_exists效率比较
2021/03/14 PHP
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
简单租房协议书范本
2014/08/20 职场文书