Vue3 —— 使用Vite配置环境变量

news2025/1/14 0:53:24

文章目录

  • 一、为什么要配置环境变量?
  • 二、在Vite中配置环境变量
    • 1.环境变量和模式
    • 2.环境变量
    • 3.生产环境替换
    • 4.env 文件
  • 总结


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

在一个产品的前端开发过程中,一般来说会经历本地开发、测试脚本、开发自测、测试环境、预上线环境,然后才能正式的发布。对应每一个环境可能都会有所差异,比如说用户访问资源权限、服务器地址、接口地址等。在各个环境切换的时候,就需要不同的配置参数,所以就可以用环境变量和模式,来方便我们管理。

二、在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_* 变量应该不包含任何敏感信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后疫情时代,VR全景创业的应用场景有哪些?

在数字化转型的进程中,VR技术可以帮助各个行业领域的企业商家更便捷地搭建沉浸式服务体验,帮助商家提高展示以及加快企业沟通效率。后疫情时代,企业数字化转型加速发展,VR技术已经成为企业云服务的标配工具,因此VR全景…

半入耳蓝牙耳机什么牌子好?音质最好的半入耳式蓝牙耳机

跑步或者游泳的时候带着耳机听音乐或者有声书,是一家很惬意舒心的事情,市面上有那么多的蓝牙耳机品牌,很多人在选购的时候总是犯了难,不知道哪款耳机值得入手,半入二的佩戴更加舒适,深受很多人的喜爱&#…

用于音频信号去噪的谱相减和陷波滤波的比较(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 谱相减减少背景(加性)噪声影响的最流行方法之一是谱相减。背景噪声是降低录音中语音质量和清晰度的最常…

const成员和static成员详解

const成员和static成员详解1.const成员函数2.static成员(1)静态成员变量(2)静态成员函数(3)静态成员使用场景1.const成员函数 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函…

热点新品—类器官代谢组学

01为什么研究类器官如此重要? 类器官技术是近年来生物医学领域最具突破性的前沿技术之一,更是科技部发布了“十四五”国家重点研发计划的6个重点专项之一。因模型本身具有极高的创新性,深受基金申请和高分杂志的青睐。并且由于人源化类器官可…

让你室友、工友、小孩、断网的骚操作!ARP攻击演示!

前提: ① 、你需要 和 你室友处于同一个局域网,互相能ping通 ②、你需要知道你室友的IP ③、您可能需要一个linux 设备,手机也行(需要安装termux 来执行命令)、linux系统电脑、树莓派等都可以。 -----------------…

PCB入门学习—原理图的绘制2

目录 2.2 TEA5767音频模块的绘制 2.3 ENC28J60以太网模块的绘制 学习目录: 2.2 TEA5767音频模块的绘制 首先有个问题:为什么这个电容放在原理图上怎么移动也对不齐?? 解决方法:把原理图上的栅格这个东西设置成1mil…

【小甲鱼C语言】课后笔记第一章第七节——算数运算符

目录 1. 算术运算符 2. 何谓“目”? 3. 表达式 4. 类型转换 5.课后习题(编程题) 1. 算术运算符 C 语言通过提供大量的运算符来支持我们对数据进行处理,前边我们将一个值存放到变量中,使用的是赋值运算符&#xff…

lerna+rollup搭建vue组件库并发布到npm

一、框架介绍 1. lerna Lerna 是一个管理工具,用于管理包含多个软件包(package)的 JavaScript 项目。 目的是将大型代码仓库分割成多个独立版本化的软件包。 官网点这里 2. rollup Rollup 是一个 JavaScript 模块打包工具,可以将…

骨灰级精品,京东百万架构师亲码的MySQL内部笔记太硬核了

前言 MySQL是Java程序员面向高级的必备技能,很多朋友在面试时经常在这里折戟沉沙,饮恨不已。熟练掌握MySQL知识,在实践中具有很强的操作性,尤其是在互联网行业,不仅要写好代码、实现功能,而且还要在高并发…

P1983 [NOIP2013 普及组] 车站分级——拓扑排序+dp

[NOIP2013 普及组] 车站分级 题目描述 一条单向的铁路线上,依次有编号为 $1, 2, …, n $的 $n $个火车站。每个火车站都有一个级别,最低为 111 级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车…

二进制转化成十进制进行输出

给定两个十进制整数 : AAA,BBB 你需要把它们的二进制形式以十进制的运算法则相加输出结果。 例如: A3,B2A 3 , B 2A3,B2 的时候,AAA 的二进制表示是 : 111111 , BBB 的二进制表示是 101010 ,你需要输出答案为 : 212121 输入描述: 一行两…

educoder:实验13 算法-穷举法和二分法

第1关:百钱百鸡 任务描述 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 相关知识 为了完成本关任务&#xff…

和ChatGPT大战多个回合,我知道了这些真相

最近,ChatGPT在国内外社交平台上可谓是火出圈了。作为一款人工智能语言模型,它可以和人类以对话的方式进行互动,比你早已熟知的Siri,小度还有小爱同学要更加智能与专业。因为它除了回答问题外还能进行创作,比如写小作文…

喜报 | Bonree ONE 2.0荣获信通院“2022IT新治理年度明星产品”

近日,由信通院“GOLFIT新治理领导力论坛”评选的2022IT新治理年度明星产品重磅出炉,博睿数据一体化智能可观测平台Bonree ONE 2.0凭借卓越的产品力以及优秀的用户体验,从一众产品中脱颖而出,获得“2022IT新治理年度明星产品”。 …

第06讲:Security在前后端分离项目中的综合应用

一、基本业务开发 1.1、需求分析 由于Security对用户进行鉴权和授权是通过用户名去数据库中取权限,所以我们需要开发一个功能,这个功能就是通过username去数据库里查该用户所具备的所有权限 1.2、完成需求 1.2.1、数据库脚本 请下载文章末尾的源代码…

JavaScript高级 |深入闭包

本文已收录于专栏⭐️ 《JavaScript》⭐️ 学习指南:闭包基本概念内存管理垃圾回收GC算法-标记清除GC算法-标记整理GC算法-分代收集GC算法-增量收集GC算法-闲时收集内存泄露完结散花参考文献闭包 闭包是JavaScript中非常容易让人迷惑的知识点。 《在你不知道的Java…

灯泡与影子(三分)

题目描述: 有一天&#xff0c;小明发现他的影子长度随着他在灯泡和墙壁之间走动时会发生变化&#xff0c;一个突发奇想在他的脑海里闪过&#xff0c;他现在想知道他来回走动&#xff0c;他的影子的最大长度是多少&#xff1f; 输入格式: 第一行包含一个整数T (T < 100),表…

C语言 常用标准库函数代码实现

一、内存 1. memcpy函数 memcpy 函数用于 把资源内存&#xff08;src所指向的内存区域&#xff09; 拷贝到目标内存&#xff08;dest所指向的内存区域&#xff09;&#xff1b;拷贝多少个&#xff1f;有一个size变量控制拷贝的字节数&#xff1b; 函数原型&#xff1a;void …

网络工程毕业设计 SSM汽车租赁系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品&#xff0c;【基于SSM的汽车租赁…