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实现ASP分页函数 HTML分页函数
Sep 22 Javascript
JavaScript 学习笔记(五)
Dec 31 Javascript
jquery对表单操作2
Apr 06 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
js实现图片轮换效果代码
Apr 16 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
canvas红包照片实例分享
Feb 28 Javascript
JS获取字符对应的ASCII码实例
Sep 10 Javascript
vue路由嵌套的SPA实现步骤
Nov 06 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
Aug 07 Javascript
代码分析vue中如何配置less
Sep 28 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
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
jquery中动态效果小结
2010/12/16 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
python访问系统环境变量的方法
2015/04/29 Python
python实现二维插值的三维显示
2018/12/17 Python
解决python对齐错误的方法
2020/07/16 Python
python源文件的字符编码知识点详解
2021/03/04 Python
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
年终总结会议主持词
2014/03/17 职场文书
好的促销活动方案
2014/08/21 职场文书
企业党员个人自我评价
2014/09/20 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
人事专员岗位职责
2015/02/03 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js