(四)构建基础进阶-env文件与环境设置

我们在实际开发中,我们一般会经历项目的开发阶段,测试阶段,和最终上线阶段,每个阶段对于项目代码的需要可能都有所不同,那我们怎么让它在不同阶段呈现不同的效果呢?我们下面看一下环境是不是可以解决这个问题呢?

介绍

1、配置文件

正确的配置环境首先我们要认识一下不同配置之间的关系。随便画个图表示一下:

这里说的是最全的的可能,我们可以看到不同的环境有着不同的配置,他们之间还有一些交集,就是他们的公公配置,那么我们思考一下在vue中我们需要怎么处理?
其实很简单,就是在项目的跟目下创建不同的环境变量配置:
如:
.env 表示在所有环境中被载入
.env.local 表示在所有环境中被载入,但是git会自动忽略
.env.[mode] 表示只有指定的模式才会载入
.env.[mode].local 表示只有在指定的模式才会载入,但是会被git自动忽略
比如,我们在本地创建几个环境配置,如下图:

以.env.dev这个文件为例子,看一下这个文件中的环境变量怎么写

在脚本管理配置中加载这种环境模式试一下

马上启动一下看看这种环境是否生效

可以看到这种环境配置事情作用了的。

这里其他的环境我们就不做详细讲解了,基本都八九不离十,这里我需要记录一下我测试的一些小发现,这些环境配置的优先权重是怎么样的呢。直接上干货:.env.[mode].local > .env.[mode] >.env.local >.env .
但是这里说一下,除了环境的配置权重,不同的配置他们会进行合并操作,类似于Object.assign的用法。

2、额外配置

我们还可以通过新建配置文件的方式为不同的环境配置不同的变量,但是我们发现.env这种文件好像仅仅支持静态值。那怎么办,这里我想了一下发现可以手动在根目录下创建一个自己的配置文件。

我们还可以直接在vue.config.js中直接注入这些动态地配置,这里可以查阅一下chainWebpack这个属性来修改DefinePlugin的值,我们看一下官网的写法。

总结

环境的配置和管理对于项目的构建很重要,通过不同的项目配置可以增加灵活性,提高程序的扩展性,也可以帮我们有效的分析和定位不同环境下的运行机制和问题。

http://www.dtmao.cc/news_show_1309867.shtml

Vuejs 基础学习教程的更多相关文章

  1. C++基础学习教程(八)

    转载请注明出处:http://blog.csdn.net/suool/article/details/38300117 引入 在进行下一步的学习之前,我们须要厘清几个概念. RAII 首先介绍一个编程 ...

  2. C++基础学习教程(一)

    開始自己的C++复习进阶之路. 声明: 这次写的博文纯当是一个回想复习的教程.一些非常基础的知识将不再出现.或者一掠而过,这次的主要风格就是演示样例代码非常多~~~ 全部代码在Ubuntu 14.04 ...

  3. spring boot基础学习教程

    Spring boot 标签(空格分隔): springboot HelloWorld 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新 ...

  4. webpack从0到1超详细超基础学习教程

    概念 自己是一个一听到webpack就头大,看着一堆不知道那是什么玩意的东西总觉得自己做好前端就行了,但是在使用vue-cli的时候总觉得要改其中的一些东西进行项目初始化的时候能够更好使用!所以想要根 ...

  5. C++基础学习教程(六)----类编写的前情回想以及项目实战(1)

    在開始类的编写之前我们依旧须要回想整理一下前面所说的内容,(前面尽管是一个自己定义数据类型的实现过程,可是内容有点繁杂). 先看一段代码: /** @file calssStruct.cpp */ / ...

  6. C++基础学习教程(五)

    这一讲我们集中解说类和他的一些特性.首先我们从自己定义一个有理数类来開始. 在C语言中有一个keyword: struct ,用来创建一个结构体类型.可是在C++中这个关键的含义就不只如此了,以下我们 ...

  7. C++基础学习教程(三)

    承接上一讲. 2.7文件I/O 关于读写文件,C++中有一个专门的头文件<fstream>. 首先是读文件演示样例,例如以下: </pre><pre> /***** ...

  8. C++基础学习教程(七)----类编写及类的两个特性解析---&gt;多态&amp;继承

    类引入 到眼下为止我们所写的自己定义类型都是keywordstruct,从如今起我们将採用class方式定义类,这样的方式对于学习过其它高级语言包含脚本(Such as Python)的人来说再熟悉只 ...

  9. javascript 基础学习教程

    http://www.itxueyuan.org/javascript/jiaocheng_2/

随机推荐

  1. 双重校验锁 --使用volatile和两次判空校验

    介绍 双重校验锁是单例模式中,饿汉式的一种实现方式.因为有两次判空校验,所以叫双重校验锁,一次是在同步代码块外,一次是在同步代码块内. 为什么在同步代码块内还要再检验一次? 第一个if减少性能开销,第 ...

  2. C语言指针的大小

    C语言指针的大小 今天看到一道题目是这样的,写出以下变量在32位设备上的大小(占多少个字节) 然后其中就有一些指针类型的数据,那么我们知道在C语言中指针的大小都是一样的,不管是有数据类型的还是void ...

  3. 【JavaWeb】Servlet 程序

    Servlet 程序 Servlet Servlet 是在 Web 服务器中运行的小型 Java 程序.Servlet 通常通过 HTTP(超文本传输​​协议)接收和响应来自 Web 客户端的请求. ...

  4. 【Linux】snmp在message中报错: /etc/snmp/snmpd.conf: line 311: Error: ERROR: This output format has been de

    Apr 17 17:36:17 localhost snmpd[2810]: /etc/snmp/snmpd.conf: line 311: Error: ERROR: This output for ...

  5. 【Linux】vim关闭终端的时候,忘记退出vim怎么办

    有些时候经常是关闭终端,但是忘记退出vim编辑的文本,每次登陆的时候会提示这个错误 其实很简单,在该文本的路径下,有一个隐藏文件 叫.xxx.txt.swp文件(xxx就是你退出忘记关闭的文件名). ...

  6. kubernets之DaemonSet

    一  k8s资源之DaemonSet 1.1 介绍认识DaemonSet DaemonSet可以理解为一种比较特殊的RS,DaemonSet的作用是永远保持被指定的节点只运行一个pod的副本,可用作集 ...

  7. XEE - Pikachu

    概述 XXE -"xml external entity injection"既"xml外部实体注入漏洞".概括一下就是"攻击者通过向服务器注入指定的 ...

  8. 为什么不建议用var

    看了这个例子估计你就会明白了 var a = 'global'; function test() { if (!a) { var a = 'part'; } console.log(a); } tes ...

  9. 创建Django REST framework工程

    1.创建工程虚拟环境 2.创建工程目录和调整目录结构: 创建Django的项目 创建docs 用于存放一些说明文档资料 创建scripts 用于存放管理脚本文件 创建logs 用于存在日志 在与项目同 ...

  10. 在EXCEL中如何同时冻结行与列?

    鼠标所在的单元格的位置 ,决定了你冻结的行和列.如: 冻结第一行与第一列, 只需要将鼠标置于单元格在第二列,第二行. 点击冻结