vue-cli3.0 环境变量与模式配置方法


Posted in Javascript onNovember 08, 2018

vue-cli3.0移除了配置文件目录: config和build文件夹。可以说是非常的精简了,那移除了配置文件目录后如何自定义配置环境变量和模式呢?

为什么需要配置环境变量和模式呢?

所有方法肯定是来源于现实的需求。在一个产品的前端开发过程中,一般来说会经历本地开发、测试脚本、开发自测、测试环境、预上线环境,然后才能正式的发布。对应每一个环境可能都会有所差异,比如说服务器地址、接口地址、websorket地址…… 等等。在各个环境切换的时候,就需要不同的配置参数,所以就可以用环境变量和模式,来方便我们管理。

环境变量

cli-3.0总共提供了四种方式来制定环境变量:

1.在根目录添加.env文件,配置所有情况下都会用到的配置(不知道这个存在的意义,所有的都需要的也就不需要配置了吧)。

2.在根目录添加.env.local 文件,配置所有情况下都会用到的配置,与.env的区别是只会在本地,该文件不会被git跟踪。

3.在根目录添加.env.[mode] 文件,配置对应某个模式下的配置,比如:.env.development来配置开发环境的配置。

4.在根目录添加.env.[mode].local文件,配置对应某个模式下的配置,与.env.[mode]的区别也只是会在本地生效,该文件不会被git跟踪。

在文件中,我们只需要以key=value的方式就可以设置变量了。

例如:

FOO=bar
VUE_APP_SECRET=secret

环境变量的使用

设置完环境变量之后就可以在我们的项目中使用这两个变量了。不过还需要注意的是在项目的不同地方使用,限制也不一样。

1.在项目中,也就是src中使用环境变量的话,必须以VUE_APP_开头。例如我们可以在main.js中直接输出:console.log(process.env.VUE_APP_SECRET)

2.在webpack配置中使用,没什么限制,可以直接通过process.env.XXX来使用

3.在public/index.html中使用的:分三类:(没怎么用过)

<%= VAR %> 用于非转换插值 例如:`<link rel="shortcut icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" >`
 <%- VAR %> 用于HTML转义插值
 <% expression %> 用于JavaScript控制流

模式

模式是Vue CLI项目中的一个重要概念。默认情况下,Vue CLI项目中有三种模式:

1.development:在vue-cli-service serve下,即开发环境使用

2.production:在vue-cli-service build 和vue-cli-service test:e2e下,即正式环境使用

3.test: 在vue-cli-service test:unit下使用

另外,如果你想要修改模式下默认的环境变量的话可以通过--mode来实现,例如:

 "dev-build": "vue-cli-service build --mode development"

有环境变量就能完成我们的需求了,为什么需要有模式的存在,这里我没查到详细的文档,个人认为模式是为了提供给第三方的插件一个辨识。例如vuex可以根据模式的不同,在development自动注入devtoolPlugin插件,利于开发,而在production中检测到错误不会进行console。

举例

说完了概念,可能还是比较模糊,可以试着添加一个stage环境,用来模拟预上线。

首先在package.json添加一种类型,并修改默认环境变量为stage环境变量

vue-cli3.0 环境变量与模式配置方法

在根目录下创建.env.stage文件,来声明变量:

vue-cli3.0 环境变量与模式配置方法

vue-cli3.0 环境变量与模式配置方法

这里声明的NODE_ENV = ‘production'用来表示这是生产环境。VUE_APP_CURRENTMODE为项目变量,outputDir为除数打包后文件的地址。
在vue.config.js中使用环境变量,制定输出文件为环境变量配置的文件:

vue-cli3.0 环境变量与模式配置方法

最后执行命令yarn stage能看到根目录下生成了stage文件:

vue-cli3.0 环境变量与模式配置方法

这样我们就配置完了stage环境。详细的项目地址可以参考:以vue-cli3.0为基础,结合vue-router、vuex、axios、iview组件库搭建一个工程化前端demo

参考文档:Environment Variables and Modes

总结

以上所述是小编给大家介绍的vue-cli3.0 环境变量与模式配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery UI AutoComplete 使用说明
Jun 20 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
Aug 19 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
vue实现在表格里,取每行的id的方法
Mar 09 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
js打开word文档预览操作示例【不是下载】
May 23 Javascript
webpack常用配置总览(小结)
Nov 18 Javascript
JavaScript实现贪吃蛇游戏
Jun 16 Javascript
详解如何创建并发布一个 vue 组件
Nov 08 #Javascript
webpack开发环境和生产环境的深入理解
Nov 08 #Javascript
webpack 开发和生产并行设置的方法
Nov 08 #Javascript
JS动画实现回调地狱promise的实例代码详解
Nov 08 #Javascript
深入解析ES6中的promise
Nov 08 #Javascript
vue中promise的使用及异步请求数据的方法
Nov 08 #Javascript
node使用Mongoose类库实现简单的增删改查
Nov 08 #Javascript
You might like
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
python中的print()输出
2019/04/12 Python
Python 实现自动导入缺失的库
2019/10/29 Python
戴尔英国官网:Dell英国
2017/05/27 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
求职自荐信范文格式
2013/11/29 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
2014年环保工作总结
2014/11/26 职场文书
《1942》观后感
2015/06/08 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
html粘性页脚的具体使用
2022/01/18 HTML / CSS
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
i7 6700处理器相当于i5几代
2022/04/19 数码科技