在Vue3中如何管理环境变量

 更新时间:2026年06月30日 09:43:31   作者:x-z-y  
这段描述概括了Vue3中环境变量管理的关键点,包括.env文件的使用、环境变量的命名规范、设置方法及使用方式,通过Vite构建工具,开发者可以根据不同环境配置不同的变量,确保在开发、生产、测试等环境中的应用配置正确无误

在 Vue 3 中,环境变量管理是通过 .env 文件来进行的,利用这些文件可以让开发者根据不同的环境(开发、生产、测试等)配置不同的变量。

这一机制由 Vite 构建工具支持,它帮助开发者根据不同的环境需求做出相应配置。

1. 环境变量的基本概念

在前端开发中,环境变量通常用于存储配置信息、密钥、API 地址等,这些信息可能会因不同的部署环境而有所不同。

通过 .env 文件,开发者可以确保在开发环境、生产环境等不同环境下使用不同的配置,而无需手动修改代码。

2. .env 文件的结构

2.1 文件命名规则

Vue 3 使用 Vite 作为构建工具,Vite 支持多种环境变量文件,文件的命名规则如下:

  • .env: 默认的环境配置文件,会在所有环境中加载。
  • .env.local: 用于本地开发的配置,不应被版本控制追踪。它的优先级高于 .env。
  • .env.development: 用于开发环境的配置文件。
  • .env.production: 用于生产环境的配置文件。
  • .env.test: 用于测试环境的配置文件。
  • .env.[mode].local: 对于特定环境的本地配置文件,优先级最高。

当你运行 vite 时,Vite 会根据不同的构建模式来加载相应的环境变量文件。

2.2 环境变量的命名规范

Vite 只会暴露以 VITE_ 为前缀的环境变量,避免泄露敏感数据。

对于没有 VITE_ 前缀的环境变量,它们不会暴露到客户端代码中,从而保护服务器端的敏感信息。

例子:

  • 正确的命名:VITE_API_URL=https://api.example.com
  • 错误的命名(不会暴露):API_KEY=abcdef12345

3. 设置 .env 文件

3.1 基本环境变量设置

你可以在 .env 文件中设置一些通用的环境变量,比如 API 的 URL、应用标题、版本号等。

示例 .env 文件:

VITE_API_URL=https://api.example.com
VITE_APP_TITLE=Vue App
VITE_VERSION=1.0.0

3.2 环境特定的设置

Vite 允许你根据不同的环境设置不同的变量。

例如,你可以为开发环境、生产环境设置不同的 API 地址。

示例 .env.development 文件:

VITE_API_URL=http://localhost:3000
VITE_APP_TITLE=Vue Dev App

示例 .env.production 文件:

VITE_API_URL=https://prod.api.example.com
VITE_APP_TITLE=Vue Production App

4. 使用环境变量

在 Vue 3 中,你可以通过 import.meta.env 来访问这些环境变量。通过这种方式,你可以在代码中动态地使用不同环境下的配置。

在 JavaScript/TypeScript 中使用环境变量

你可以直接通过 import.meta.env 访问环境变量的值,例如:

// src/main.js
console.log(import.meta.env.VITE_API_URL);  // 访问 API URL
console.log(import.meta.env.VITE_APP_TITLE); // 访问应用标题

在 Vue 组件中使用环境变量

你也可以在 Vue 单文件组件中使用环境变量。举个例子:

<template>
  <div>
    <h1>{{ appTitle }}</h1>
    <p>{{ apiUrl }}</p>
  </div>
</template>

<script setup>
const appTitle = import.meta.env.VITE_APP_TITLE;
const apiUrl = import.meta.env.VITE_API_URL;
</script>

使用条件判断环境变量

你可以通过环境变量来实现条件判断,根据不同的环境加载不同的功能:

if (import.meta.env.MODE === 'development') {
  console.log('This is the development environment.');
}

5. 切换环境

Vite 允许你通过设置不同的构建模式来切换环境。你可以通过以下命令来指定使用哪种环境:

  • 开发环境:运行 vite 或 npm run dev,默认使用 .env.development 或 .env。
  • 生产环境:运行 vite build 或 npm run build,会使用 .env.production 或 .env。
  • 测试环境:运行 vite build --mode test,它会加载 .env.test 配置。

你还可以通过命令行参数来指定特定的环境:

vite --mode production  # 启动生产环境
vite --mode development  # 启动开发环境

6. 优先级规则

Vite 会根据不同文件的优先级来加载 .env 文件。

加载优先级从高到低如下:

  • .env.local: 本地开发环境使用的配置文件,优先级最高。
  • .env.[mode].local: 特定环境的本地配置文件,优先级高于 .env.[mode]。
  • .env: 默认的环境配置文件,适用于所有环境。
  • .env.[mode]: 特定环境的配置文件,优先级低于 .env.local 和 .env.[mode].local。

7 案例

假设我们有以下需求:

  • 在 开发环境(local)使用 http://localhost:3000 作为 API 地址。
  • 在 生产环境(production)使用 https://api.example.com 作为 API 地址。
  • 应用标题 VITE_APP_TITLE 在不同环境下应该有所不同。

1、创建 .env 文件

首先,创建基础的 .env 文件,并设置默认的环境变量:

.env(默认环境):

VITE_APP_TITLE=Vue Default App
VITE_API_URL=https://api.example.com

这个配置会作为默认设置,适用于没有特定环境标识时的情况。

2、创建开发环境和生产环境配置文件

接下来,为开发环境和生产环境分别创建配置文件。可以使用 .env.development 和 .env.production 来覆盖 .env 文件中的配置。

.env.development(开发环境配置)

VITE_APP_TITLE=Vue Dev App
VITE_API_URL=http://localhost:3000

.env.production(生产环境配置)

VITE_APP_TITLE=Vue Production App
VITE_API_URL=https://api.example.com

3、在 Vue 3 组件中使用环境变量

接下来,在 Vue 3 应用中使用这些环境变量。我们可以通过 import.meta.env 来读取环境变量。

src/App.vue(Vue 组件)

<template>
  <div>
    <h1>{{ appTitle }}</h1>
    <p>API URL: {{ apiUrl }}</p>
  </div>
</template>

<script setup>
const appTitle = import.meta.env.VITE_APP_TITLE;
const apiUrl = import.meta.env.VITE_API_URL;
</script>

<style scoped>
h1 {
  color: #42b983;
}
</style>

在这个 Vue 组件中,我们通过 import.meta.env.VITE_APP_TITLE 和 import.meta.env.VITE_API_URL 获取并显示环境变量的值。

4、启动应用并测试

5、开发环境

当我们在开发环境中运行应用时,Vite 会加载 .env.development 文件中的变量。我们可以通过以下命令启动开发服务器:

这时,页面会显示如下内容:

Vue Dev App
API URL: http://localhost:3000

生产环境

在生产环境中,Vite 会加载 .env.production 文件中的变量。要进行生产环境构建并启动,可以运行以下命令:

npm run build  # 构建生产环境
npm run preview  # 预览生产环境

这时,页面会显示如下内容:

Vue Production App
API URL: https://api.example.com

通过 .env 文件,你可以轻松管理 Vue 3 应用中的环境配置。

你可以为不同的环境(开发、生产、测试等)设置不同的变量,并通过 import.meta.env 访问这些变量。

Vite 的强大之处在于它提供了灵活的配置机制,帮助开发者快速适应不同环境下的需求。

在使用 .env 文件时要特别注意敏感数据的处理,避免将敏感信息暴露到前端。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于VuePress 轻量级静态网站生成器的实现方法

    基于VuePress 轻量级静态网站生成器的实现方法

    VuePress是一个基于Vue的轻量级静态网站生成器以及为编写技术文档而优化的默认主题。这么文章给大家详细介绍了vuepress 静态网站生成器的方法,需要的朋友参考下吧
    2018-04-04
  • vue的keep-alive中使用EventBus的方法

    vue的keep-alive中使用EventBus的方法

    keep-alive是Vue提供的一个抽象组件,用来对组件进行缓存,从而节省性能,由于是一个抽象组件,所以在页面渲染完毕后不会被渲染成一个DOM元素。这篇文章主要介绍了vue的keep-alive中使用EventBus的方法,需要的朋友可以参考下
    2019-04-04
  • 详解如何创建基于vite的vue项目

    详解如何创建基于vite的vue项目

    vite 这个是尤大开发的新工具,目的是以后替代webpack,下面这篇文章主要给大家介绍了关于如何创建基于vite的vue项目的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • vue-cli webpack 引入swiper的操作方法

    vue-cli webpack 引入swiper的操作方法

    今天小编就为大家分享一篇vue-cli webpack 引入swiper的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue ECharts直角坐标系配置详细讲解

    Vue ECharts直角坐标系配置详细讲解

    数据的重要性我们大家都知道,就算再小的项目中都可能使用几个图表展示,我最近在做项目的过程中也是需要用到图表,最后选择了echarts图表库
    2022-12-12
  • Vue路由守卫案例代码

    Vue路由守卫案例代码

    在Vue中,路由守卫分为三种:全局路由守卫、独享路由守卫以及组件内路由守卫,本文重点介绍Vue路由守卫案例代码,需要的朋友可以参考下
    2023-02-02
  • Vue2+Quill富文本编辑器详解

    Vue2+Quill富文本编辑器详解

    文章指出Quill 2.0.0-dev.4与2.0.2版本存在兼容性问题,原因未知,主要步骤包括引入依赖、创建编辑器组件、使用及效果测试
    2025-08-08
  • 详解Vue用axios发送post请求自动set cookie

    详解Vue用axios发送post请求自动set cookie

    本篇文章主要介绍了Vue用axios发送post请求自动set cookie,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • 解决vue中使用proxy配置不同端口和ip接口问题

    解决vue中使用proxy配置不同端口和ip接口问题

    这篇文章主要介绍了解决vue中使用proxy配置不同端口和ip接口问题 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • vue动态禁用控件绑定disable的例子

    vue动态禁用控件绑定disable的例子

    今天小编就为大家分享一篇vue动态禁用控件绑定disable的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10

最新评论