Vue3如何使用Vite配置环境变量

 更新时间:2026年04月18日 14:56:22   作者:Bonsoir777  
文章主要介绍了在Vitete中配置环境变量的方法,包括环境变量和模式的定义D在Vitete中暴露的环境变量D生产环境下的替换置D以及env文件的使用方法,并提到了env文件的加载优先级D安全注意事项D以及如何自定义env变量前缀等为Vite项目的环境配置配置置提供了一种参考

一、为什么要配置环境变量?

在一个产品的前端开发过程中,一般来说会经历本地开发、测试脚本、开发自测、测试环境、预上线环境,然后才能正式的发布。

对应每一个环境可能都会有所差异,比如说用户访问资源权限、服务器地址、接口地址等。

在各个环境切换的时候,就需要不同的配置参数,所以就可以用环境变量和模式,来方便我们管理。

二、在Vite中配置环境变量

1.环境变量和模式

因为项目使用VIte创建的,所以在配置环境变量之前我们需要查看在Vite中的环境变量和模式。

2.环境变量

Vite 在一个特殊的 import.meta.env 对象上暴露环境变量。这里有一些在所有情况下都可以使用的内建变量:

  • import.meta.env.MODE: {string} 应用运行的模式
  • import.meta.env.BASE_URL: {string} 部署应用时的基本 URL。他由base 配置项决定。
  • import.meta.env.PROD: {boolean} 应用是否运行在生产环境。
  • import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)。
  • import.meta.env.SSR: {boolean} 应用是否运行在 server 上。

3.生产环境替换

在生产环境中,这些环境变量会在构建时被静态替换,因此,在引用它们时请使用完全静态的字符串。

动态的 key 将无法生效。例如,动态 key 取值 import.meta.env[key] 是无效的。

4.env文件

在根目录下新建这两个文件

.env.dev  文件

NODE_ENV = dev
VITE_NAME="LJY"

.env.pro 文件

NODE_ENV = pro
VITE_NAME="LJY"

Vite 使用 dotenv 从你的 环境目录 中的下列文件加载额外的环境变量:

环境加载优先级

一份用于指定模式的文件(例如 .env.production)会比通用形式的优先级更高(例如 .env)。

另外,Vite 执行时已经存在的环境变量有最高的优先级,不会被 .env 类文件覆盖。例如当运行 VITE_SOME_KEY=123 vite build 的时候。

.env 类文件会在 Vite 启动一开始时被加载,而改动会在重启服务器后生效。

加载的环境变量也会通过 import.meta.env 以字符串形式暴露给客户端源码。

为了防止意外地将一些环境变量泄漏到客户端,只有以 VITE_ 为前缀的变量才会暴露给经过 vite 处理的代码。例如下面这些环境变量:

VITE_SOME_KEY=123
DB_PASSWORD=foobar

只有 VITE_SOME_KEY 会被暴露为 import.meta.env.VITE_SOME_KEY 提供给客户端源码,而 DB_PASSWORD 则不会。

console.log(import.meta.env.VITE_SOME_KEY) // 123
console.log(import.meta.env.DB_PASSWORD) // undefined

如果你想自定义 env 变量的前缀,请参阅 envPrefix

安全注意事项

如果你想要自定义 env 变量的前缀,请参阅 envPrefix 选项。

  • .env.*.local 文件应是本地的,可以包含敏感变量。你应该将 .local 添加到你的 .gitignore 中,以避免它们被 git 检入。
  • 由于任何暴露给 Vite 源码的变量最终都将出现在客户端包中,VITE_* 变量应该不包含任何敏感信息。

总结

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

相关文章

  • 源码浅析Vue3中的组件挂载

    源码浅析Vue3中的组件挂载

    这篇文章主要带大家从源码分析一下Vue3中的组件挂载的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-09-09
  • vue 模板循环绘制多行上传文件功能实现

    vue 模板循环绘制多行上传文件功能实现

    这篇文章主要为大家介绍了vue 模板循环绘制多行上传文件功能实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Vue组件封装之input输入框实战记录

    Vue组件封装之input输入框实战记录

    在vue中会将常用的组件进行封装,下面这篇文章主要给大家介绍了关于Vue组件封装之input输入框的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • vue 2.0 购物车小球抛物线的示例代码

    vue 2.0 购物车小球抛物线的示例代码

    本篇文章主要介绍了vue 2.0 购物车小球抛物线的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 关于vue-treeselect的基本用法

    关于vue-treeselect的基本用法

    vue-treeselect 是一个多选组件,具有对 Vue.js嵌套选项支持,这篇文章主要介绍了关于vue-treeselect的基本用法,需要的朋友可以参考下
    2022-11-11
  • vue响应式原理与双向数据的深入解析

    vue响应式原理与双向数据的深入解析

    Vue 最独特的特性之一,是其非侵入性的响应式系统。下面这篇文章主要给大家介绍了关于vue响应式原理与双向数据的相关资料,需要的朋友可以参考下
    2021-06-06
  • Vue如何使用混合Mixins和插件开发详解

    Vue如何使用混合Mixins和插件开发详解

    这篇文章主要介绍了Vue如何使用混合Mixins和插件开发详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Vue.js与Flask/Django后端配合方式

    Vue.js与Flask/Django后端配合方式

    在现代Web开发中,Vue.js与Flask或Django配合使用,实现前后端分离,提高开发效率和应用性能,本文介绍了整合Vue.js和Flask/Django的步骤,包括环境搭建、API编写、项目配置,以及生产部署,此架构不仅加快了开发进程,还提高了项目的可维护性和可扩展性
    2024-09-09
  • 在Vue实例上挂载自己定义的工具类的操作方法

    在Vue实例上挂载自己定义的工具类的操作方法

    在实际的Vue开发中,我们经常需要在多个组件之间共享一些工具函数或类,比如格式化日期、处理字符串、操作数组等,本文将详细介绍如何在Vue实例上挂载自己定义的工具类,并在项目中高效使用这些工具,需要的朋友可以参考下
    2024-09-09
  • vue使用directive限制表单输入整数、小数的方法

    vue使用directive限制表单输入整数、小数的方法

    这篇文章主要介绍了vue使用directive限制表单输入整数,小数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04

最新评论