当前位置: 首页 > news >正文

Vite 中的环境变量使用详解

Vite 中的环境变量使用详解

前端开发中,环境变量的使用至关重要,尤其是在处理开发、测试和生产环境下的不同配置时。Vite对环境变量的使用有其独特的实现方式。下面重点介绍如何在 Vite 中使用环境变量,并简要介绍 Vite 与 Vue CLI 的关联与区别,最后介绍 Vue CLI 中环境变量的使用。

Vite 中的环境变量使用

在 Vite 中,环境变量通常通过 .env 文件来定义。根据环境的不同,可以使用以下几种类型的 .env 文件:

  1. .env: 通用的环境变量文件,适用于所有环境。
  2. .env.local: 通用的本地配置文件,通常不提交到版本控制系统中。
  3. .env.development: 仅在开发环境中使用的环境变量文件。
  4. .env.development.local: 开发环境的本地配置文件,通常用于定义开发环境下的私人配置。
  5. .env.production: 仅在生产环境中使用的环境变量文件。
  6. .env.production.local: 生产环境的本地配置文件,通常不提交到版本控制系统中。

这些文件可以根据不同的环境需求进行配置。Vite 在启动时会根据命令自动加载对应的 .env 文件。例如,当你使用 vite 启动开发服务器时,Vite 会自动加载 .env.development.env.local,如果你使用 vite build 进行生产构建,Vite 则会加载 .env.production.env.production.local。这些文件中的变量会自动合并并应用到当前环境中。

在 Vite 中,所有环境变量必须以 VITE_ 前缀开头。例如:

VITE_API_URL=https://api.example.com
VITE_APP_TITLE=My Vite App

这一前缀是强制性的,Vite 会自动过滤掉未以 VITE_ 开头的变量。这种设计确保了只有显式声明为应用级别的变量才会被注入到代码中,减少了敏感信息泄露的风险。

在代码中,可以通过 import.meta.env 对象来访问环境变量。例如:

console.log(import.meta.env.VITE_API_URL);

import.meta.env 是 Vite 提供的一个特殊对象,用于在代码中访问 .env 文件中定义的变量。Vite 在构建时会静态地将这些变量注入到代码中,因此变量值在最终的打包文件中是固定的,无法在运行时动态修改。

Vite 与 Vue CLI 的关联与区别

Vite 和 Vue CLI 都是 Vue.js 项目的构建工具,但它们在设计理念、性能和使用方式上有显著的区别。

关联

  • Vue.js 项目支持: Vite 和 Vue CLI 都是为了支持 Vue.js 项目而设计的,提供了从开发到生产的完整构建流程。
  • 插件生态: 虽然两者有不同的插件系统,但它们都支持 Vue.js 所需的基础设施,如支持 Vue 单文件组件(SFC)、热模块替换(HMR)、和环境变量管理。

区别

  • 构建速度: Vite 利用现代浏览器的 ES 模块特性,在开发阶段无需打包,启动和热更新速度极快。Vue CLI 使用 Webpack 作为打包工具,尽管功能强大,但在大型项目中开发服务器启动和热更新速度较慢。
  • 构建工具链: Vue CLI 主要基于 Webpack,功能全面且成熟,适合复杂项目。Vite 基于 Rollup,构建过程更简洁高效,更适合追求极致性能的项目。
  • 环境变量的注入时机: 在 Vite 中,环境变量在构建时静态注入;在 Vue CLI 中,环境变量可以在运行时动态读取。

Vue CLI 中的环境变量使用

尽管本文重点介绍了 Vite 中环境变量的使用,了解 Vue CLI 中环境变量的用法也有助于理解两者的差异。

在 Vue CLI 中,环境变量文件的命名与 Vite 类似,同样支持以下几种文件:

  1. .env: 通用的环境变量文件。
  2. .env.local: 通用的本地配置文件。
  3. .env.development: 开发环境的环境变量文件。
  4. .env.development.local: 开发环境的本地配置文件。
  5. .env.production: 生产环境的环境变量文件。
  6. .env.production.local: 生产环境的本地配置文件。

Vue CLI 要求所有环境变量的命名必须以 VUE_APP_ 前缀开头。例如:

VUE_APP_API_URL=https://api.example.com
VUE_APP_TITLE=My Vue App

在 Vue CLI 中,环境变量可以通过 process.env 对象访问,例如:

console.log(process.env.VUE_APP_API_URL);

Vue CLI 支持通过 --mode 参数指定不同的构建模式,如 npm run build --mode production,并自动加载相应的 .env 文件。

参考链接

  • Vite 官方文档
  • Vue CLI 官方文档

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 重型工程车辆数据集
  • Linux - 在Ubuntu中安装Python和PIP
  • bootloader固件升级开发原理
  • 设计模式-结构型-11-代理模式
  • 大数据新视界 --大数据大厂之Kubernetes与大数据:容器化部署的最佳实践
  • 【数据结构】线性数据结构-顺序栈
  • ChromaDB教程_2024最新版(上)
  • 《华为交换机堆叠配置》
  • Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行
  • 软考高级:逻辑地址和物理地址转换 AI解读
  • LeetCode[中等] 155. 最小栈
  • React组件如何暴露自身的方法
  • Python | Leetcode Python题解之第415题字符串相加
  • Navicate 链接Oracle 提示 Oracle Library is not loaded ,账号密码都正确地址端口也对
  • Ubuntu LLaMA-Factory实战
  • 【技术性】Search知识
  • github从入门到放弃(1)
  • Java,console输出实时的转向GUI textbox
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • MySQL的数据类型
  • Redis字符串类型内部编码剖析
  • SpringBoot几种定时任务的实现方式
  • swift基础之_对象 实例方法 对象方法。
  • vue 配置sass、scss全局变量
  • vue2.0项目引入element-ui
  • 利用DataURL技术在网页上显示图片
  • 前端之Sass/Scss实战笔记
  • 数据科学 第 3 章 11 字符串处理
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 微信开放平台全网发布【失败】的几点排查方法
  • 无服务器化是企业 IT 架构的未来吗?
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #14vue3生成表单并跳转到外部地址的方式
  • #if 1...#endif
  • #ifdef 的技巧用法
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (04)odoo视图操作
  • (42)STM32——LCD显示屏实验笔记
  • (day6) 319. 灯泡开关
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)iOS字体
  • (转)mysql使用Navicat 导出和导入数据库
  • **PHP分步表单提交思路(分页表单提交)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .Net Core与存储过程(一)
  • .net dataexcel 脚本公式 函数源码