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获取div高度的代码
Aug 09 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
JavaScript生成SQL查询表单的方法
Aug 13 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
Apr 17 Javascript
ionic实现下拉刷新载入数据功能
May 11 Javascript
JS实现的tab页切换效果完整示例
Dec 18 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
JavaScript中import用法总结
Jan 20 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
详解template标签用法(含vue中的用法总结)
Jan 12 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
数字转英文
2006/12/06 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
vue实现文件上传功能
2018/08/13 Javascript
跟老齐学Python之??碌某?? target=
2014/09/12 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
西湖英语导游词
2015/02/06 职场文书
暑期工社会实践报告
2015/07/13 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android