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
JavaScript阻止回车提交表单的方法
Dec 30 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
jQuery的each循环用法简单示例
Jun 12 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 Javascript
jquery插件锦集【推荐】
Dec 16 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
浅谈vuex中store的命名空间
Nov 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(3) php 函数
2010/02/15 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
网页常用特效代码整理
2006/06/23 Javascript
JavaScript 动态生成方法的例子
2009/07/22 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
django框架模板语言使用方法详解
2019/07/18 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
pycharm配置git(图文教程)
2019/08/16 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python requests设置代理的方法步骤
2020/02/23 Python
办公室前台岗位职责范本
2013/12/10 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
利用js实现简单开关灯代码
2021/11/23 Javascript