vue2 全局环境变量配置

一、全局文件命名特点

.env                在所有的环境中被载入
.env.local          在所有的环境中被载入,但会被 git 忽略
.env.[mode]         只在指定的模式中被载入
.env.[mode].local   只在指定的模式中被载入,但会被 git 忽略

二、环境变量定义规范

1. 其中以.local结尾的文件会被忽略,
2. [mode]可以是:development(开发)、production(生产)、test(测试),他们分别代表不同的环境模式
3. NODE_ENV,BASE_URL 是默认的环境变量可访问无法被修改,NODE_ENV代表当前的环境模式,BASE_URL代表的是当前根路径
4. 自定义环境变量规则:必须以 VUE_APP_ 开头 否则无效
5. 访问方式:在开发中通过  process.env.变量名称  的方式获取变量值
6. 修改完需要重启服务才生效
7. 不可用来存储非公开信息,因为webpack编译后会被暴露

三、定义环境变量文件

1. 开发环境 .env.development

# 开发环境,运行 调用的环境变量
# 当前文件配置的环境变量,会在运行 npm run dev 时调用
# 除非你明确知道此文件修改的含义,否则请勿修改

# baseURL
VUE_APP_BASEURL = 'http://localhost:9000/development'

2. 生产环境 .env.production

# 生产环境,打包调用的环境变量
# 当前文件配置的环境变量,会在运行 npm run build 时调用
# 除非你明确知道此文件修改的含义,否则请勿修改

# baseURL
VUE_APP_BASEURL = 'http://localhost:9000/production'

3. 测试环境 .env.test

# 测试环境调用的环境变量
# 当前文件配置的环境变量,会在运行 npm run test 时调用
# 除非你明确知道此文件修改的含义,否则请勿修改

# baseURL
VUE_APP_BASEURL = 'http://localhost:9000/test'

4. 所有环境环境 .env

# 所有调用的环境变量
# 除非你明确知道此文件修改的含义,否则请勿修改

# AAA
VUE_APP_AAA = 'AAA'

5. 所有环境环境 (被 git 忽略).env.local

# 所有调用的环境变量,不会提交 git
# 除非你明确知道此文件修改的含义,否则请勿修改

# BBB
VUE_APP_BBB = 'BBB'

四、在组件中使用

<template>
  <div class="home">
    <h1>八、vue 环境变量</h1>
    <div>NODE_ENV:{{ NODE_ENV }}</div>
    <div>VUE_APP_AAA:{{ VUE_APP_AAA }}</div>
    <div>VUE_APP_BASEURL:{{ VUE_APP_BASEURL }}</div>
    <div>VUE_APP_BBB:{{ VUE_APP_BBB }}</div>
    <div>BASE_URL:{{ BASE_URL }}</div>
  </div>
</template>

<script>
const { NODE_ENV, VUE_APP_AAA, VUE_APP_BASEURL, VUE_APP_BBB, BASE_URL } = process.env;
export default {
  name: "ChildView",
  data() {
    return {
      NODE_ENV,
      VUE_APP_AAA,
      VUE_APP_BASEURL,
      VUE_APP_BBB,
      BASE_URL,
    };
  },
  mounted() {
    console.log(process.env);

    // 结果:
    // {
    //   NODE_ENV: "development",
    //   VUE_APP_AAA: "AAA",
    //   VUE_APP_BASEURL: "http://localhost:9000/development",
    //   VUE_APP_BBB: "BBB",
    //   BASE_URL: "/",
    // }
  },
};
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容