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 相关文章推荐
JQuery 学习笔记 选择器之六
Jul 23 Javascript
jquery 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
Feb 27 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
jquery ajax 简单范例(界面+后台)
Nov 19 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
Mar 19 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
Apr 02 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
Underscore.js常用方法总结
Feb 28 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
使用NestJS开发Node.js应用的方法
Dec 03 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/01/18 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
python持久性管理pickle模块详细介绍
2015/02/18 Python
python基础教程之五种数据类型详解
2017/01/12 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
python Opencv将图片转为字符画
2021/02/19 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
土木工程专业自荐信
2013/10/04 职场文书
学校花圃的标语
2014/06/18 职场文书
羊脂球读书笔记
2015/06/30 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技