vue项目多环境配置(.env)的实现


Posted in Vue.js onJuly 21, 2021

没接触多环境配置前,感觉好高大上,真正操作后感觉也就那么回事,在此把自己遇到的问题和解决方案叙述一下,有不对的地方欢迎各位大佬指出。

什么是多环境配置,为什么要多环境配置?

最常见的多环境配置,就是开发环境配置,和生产环境配置(也就是上线的配置),很多情况下我们开发环境下的域名,和一些配置项,和我们生产模式下的不同,这个时候就需要我们进行多环境配置,不然每次发版都要改一波数据多麻烦。另一种情况就是你两个项目是用的一套代码,但是最后又要分别打成不同的包,那么这个时候多环境配置就大大提升了开发效率。

.env 文件配置到哪里

.env文件配置在你项目的根目录里面和package.json同级如下图。

vue项目多环境配置(.env)的实现

.env文件如何配置,配置多少个?

.env文件如何命名?
最开始我在网上查的时候好多博主说名字必须命名成
.env.development 开发环境下的配置文件
.env.production 生产环境下的配置文件
其实不是的,如果你配置的是开发环境和生产环境那么这样命名,无可厚非,但是你如果是多项目公用代码,这样命名就有点驴头不对马嘴。所以这块的命名格式只需要文件开头为.env即可,后面的名字你想怎样都可以

.env文件的配置

这块就是你想用什么东西就配置什么东西,打个比方我想在项目全局拿到一个名字,那你就直接.env里面配置就ok了,下面我会详细叙述如何取值。

npm run serve 或者npm run build 的时候,会默认走.env的配置

图示:

vue项目多环境配置(.env)的实现

//这块只需要 VUE_APP_*** 以这样的形式命名就ok了,后面大写还是小写这块看你心情都可以。
VUE_APP_NAME = '娄渊洋'
VUE_APP_HTTPS = 'http://www.louhc.com/'
VUE_APP_ABBREVIATION = 'louhc'
VUE_APP_LOGO = 'louhc'

默认的.env文件配置好后,我们接着配置有特殊需求的.env文件,比如我想让在另一种环境下使用 其他的名字。例如 .env.bsy文件 .bsy是我随便写的名字这块可以自定义。

//这块只需要 VUE_APP_*** 以这样的形式命名就ok了,后面大写还是小写这块看你心情都可以。
VUE_APP_NAME = '白衫云'
VUE_APP_HTTPS = 'http://www.louhc.com:82/'
VUE_APP_ABBREVIATION = 'bsy'
VUE_APP_LOGO = 'bsy'

依次类推你想配置多少个都可以
.env文件配好后我们就该配置运行环境了

如何配置运行环境

找到package.json文件,如下图

vue项目多环境配置(.env)的实现

build: 和 serve: 后面跟的名字就是你随便起的名字一定要对应上,这在运行的时候才能找到相应的配置项。

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build:bsy": "vue-cli-service build --mode bsy",
    "build:kthz": "vue-cli-service build --mode kthz",
    "serve:bsy": "vue-cli-service serve --mode bsy",
    "serve:kthz": "vue-cli-service serve --mode kthz",
  },

再次多说一点:.env是默认配置项,当运行环境配置项的时候,会将默认配置项和运行的环境配置项融合,在参数相同的情况下,会以环境配置项为主,简单来说就是,默认配置项存在,环境配置项也存在,这个时候运行哪个环境配置项,就以哪个环境配置项的值为准,如果默认配置项存在,环境配置项不存在,那么运行环境配置项的时候同样也可以拿到默认配置项的值。

如何获取全局配置项的值

例子:如何我想在js中拿到 VUE_APP_NAME = ‘娄渊洋',那么这直接在你想赋值的地方写上这行代码即可 process.env.VUE_APP_NAME

console.log(process.env.VUE_APP_NAME)// 默认环境下打印的就是娄渊洋 bsy 环境下就是 白衫云

如果我们项在html中使用全局配置项的值,需要我们先在return 中赋值一下,然后 才可以通过 {{}},拿到你想要用的值。

如何运行环境

运行默认环境 npm run serve
运行指定的环境 npm run serve:bsy
默认环境打包 npm run build
指定环境打包 npm run build:bsy
只需切换不同的环境名即可

到此这篇关于vue项目多环境配置(.env)的实现的文章就介绍到这了,更多相关vue 多环境配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 Vue.js
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
Vue监视数据的原理详解
Feb 24 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 #Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 #Vue.js
Vue项目打包、合并及压缩优化网页响应速度
idea编译器vue缩进报错问题场景分析
Vue实现导入Excel功能步骤详解
Vue图片裁剪组件实例代码
vue3中provide && inject的使用
Jul 01 #Vue.js
You might like
提高PHP编程效率的方法
2013/11/07 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
详解vuex的简单使用
2018/03/12 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
原生js实现自定义滚动条组件
2021/01/20 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python中的包和模块实例
2014/11/22 Python
对于Python的框架中一些会话程序的管理
2015/04/20 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
python实现图片素描效果
2020/09/26 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
特步官方商城:Xtep
2017/03/21 全球购物
大学学习生活感言
2014/01/18 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书