vue项目中的环境变量的应用

vue项目中的环境变量的应用

在Vue项目中使用环境变量可以方便地在开发、测试、生产等不同环境中进行配置,而无需修改代码。

项目根目录下创建一个.env文件或者.env.[mode]文件,其中mode表示开发、测试、生产等不同的环境,文件名的后缀部分指定了该文件所属的环境.

  • .env.development:表示开发环境下的.env配置文件,该文件用于配置开发环境下的环境变量;
  • .env.test:表示测试环境下的.env配置文件,该文件用于配置测试环境下的环境变量;
  • .env.production:表示生产环境下的.env配置文件,该文件用于配置生产环境下的环境变量。

在这里插入图片描述

process.env.NODE_ENV(自带)

process.env.NODE_ENV是一个用于获取Node.js进程中环境变量的属性。在使用Webpack或者Vue CLI等工具构建应用程序时,该属性通常用于判断当前应用程序的运行环境,以便根据不同的环境执行不同的代码。

在Vue.js中,process.env.NODE_ENV的值会根据环境变量的类型而有所不同。通常有以下三种类型:

  • development:开发环境。
  • production:生产环境。
  • test:测试环境。
在Vue项目中使用环境变量的步骤:

**1.**在项目根目录下.env.development(开发环境)、.env.test(测试环境)、.env.production(生产环境)。在以上三个文件中可以定义项目使用的环境变量,如:

VUE_APP_BASE_API=http://localhost:8080/api
VUE_APP_DEBUG=true

其中以VUE_APP_开头的变量会被自动注入到Vue的全局变量中,可以在代码中通过process.env来访问。如:

console.log(process.env.VUE_APP_BASE_API) // http://localhost:8080/api
console.log(process.env.VUE_APP_DEBUG) // true

**2.**在项目中需要使用环境变量的地方,使用process.env来访问变量即可

例如,在axios中使用环境变量定义API接口地址:

import axios from 'axios'

const api = axios.create({
  baseURL: process.env.VUE_APP_BASE_API
})

export default api

此时,不同环境下的接口地址会自动根据不同的环境变量进行注入。

**3.**在package.json中通过–mode参数指定使用哪个环境的配置文件。

"scripts": {
  "serve": "vue-cli-service serve --mode development",
  "build": "vue-cli-service build --mode production"
}

这样就可以在不同的命令中指定不同的环境配置文件,从而实现不同环境下的配置。

(拓展)配置webpack排除打包时,根据环境变量设置是否排除

在Webpack中,可以使用module.exports来配置打包相关的配置,其中可以通过exclude选项来指定排除某些文件或文件夹。如果需要根据环境变量动态地设置是否排除某些文件或文件夹,可以使用process.env来访问环境变量,然后在Webpack配置文件中根据环境变量的值来设置exclude选项。

以下是一种基于环境变量设置排除选项的实现方法:

**1.**在.env文件中定义EXCLUDE_DIR变量,指定需要排除的文件或文件夹路径,例如:

EXCLUDE_DIR=dist

**2.**在Webpack配置文件中使用process.env来获取设定的环境变量,例如:

const path = require('path')

module.exports = {
  // ...其它配置...

  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: process.env.EXCLUDE_DIR ? new RegExp(path.join(process.env.EXCLUDE_DIR, '/')) : null
        // 排除dist文件夹中的所有文件
      },
      // ...其它规则...
    ]
  }
}

上述配置中,我们使用了process.env.EXCLUDE_DIR来获取环境变量中的EXCLUDE_DIR变量,然后根据其值来决定是否配置exclude选项。如果EXCLUDE_DIR变量存在,则配置排除dist目录,否则不排除任何文件。

当需要排除指定的目录时,只需要在执行Webpack命令时传入EXCLUDE_DIR环境变量即可,例如:

EXCLUDE_DIR=dist webpack

这样,在打包时就会自动将dist目录中的文件排除在打包范围之外。

量即可,例如:

EXCLUDE_DIR=dist webpack

这样,在打包时就会自动将dist目录中的文件排除在打包范围之外。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值