位置: IT常识 - 正文

vite环境变量配置(vericut9.0环境变量)

编辑:rootadmin
vite环境变量配置

推荐整理分享vite环境变量配置(vericut9.0环境变量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:环境变量配置教程,vericut8.0环境变量没有定义,vericut9.0.1环境变量,vericut9.0.1环境变量,vite环境变量配置,vericut9.0.1环境变量,vericut环境变量,vericut环境变量lshost,内容如对您有帮助,希望把文章链接给更多的朋友!

环境变量就是会根据当前的代码环境变化的变量叫做环境变量。 我们在项目中的代码环境大致分为下面几种: 1、开发环境 2、测试环境 3、预发布环境 4、灰度环境 5、生产环境

我们在项目中通常需要区分线上环境和开发环境的后端地址,例如:

开发环境:http://dev.api/生产环境:https://api/

我们每次在开发的时候都要区分confug.url的地址,如果测试的时候忘改地址了,地址是线上地址,那就会出大问题,测试数据直接影响到线上了。

我们在使用一些第三方sdk:百度地图sdk、小程序sdk等第三方sdk接口的时,需要带上身份信息APP_KEY,测试环境、生产环境、开发环境是不一样的key,例如这里的三种开发环境对应的不同sdk:

开发环境:110测试环境:111生产环境:112

假设现在是开发环境,APP_KEY为110,这里模拟一个axios请求:

// request.jsconst getUserInfo = () => { axios.post({ params : { APP_KEY : 110 // 开发环境的APP_KEY : 110 } })}

如果我们切换到生产环境,这里的APP_KEY需要换成112,如果切到测试环境,APP_KEY要换成111,这种手动更换是非常麻烦的。

所以我们这里需要区分一下生产环境和开发环境 新建两个文件: .env.development 开发和测试环境 .env.production 生产环境

// .env.development APP_KEY = 110 BASE_URL = http://test.api/// .env.productionAPP_KEY = 112BASE_URL = http://api/

我们在运行npm run dev的时候,希望上面的asiox的请求读的是.env.development 文件中的APP_KEY,运行npm run build的时候,希望asiox的请求读的是.env.production中的APP_KEY,并且对应的axios.basu_url自动更换到对应的地址。(这就是环境变量的意义)

在vite中环境变量的处理:dotenv第三方库(vite内置了dotenv库) dotenv第三方库会在启动npm run dev的时候读取.env文件,并解析这个文件中的环境变量,将其注入到process对象上。

vite环境变量配置(vericut9.0环境变量)

在node.js中,process对象(进程对象)代表node.js应用程序。 process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程。 process文档 (👈点击直达)

export default defineConfig(({command})=>{ console.log('process内容',process.env); // ......其他配置})

vite考虑到和其他配置的一些冲突问题,它不会直接注入到process对象下,而是调用vite的loadEnv来手动确认env文件。 loadEnv的三个参数: 1、mode:模式,根据你启动的的命令来的,比如npm run dev就是开发环境,build就是生产环境,如果你启动的命令为:npm run dev --mode development,那么mode会设置为development传递进来,启动命令为npm run dev的话系统会默认帮我们自动补全,这里也可以对mode进行更改,--mode xxxx(自定义名) 2、envDir:环境变量配置文件所在目录,这里可以使用process.cwd(),也可以这么写:envDir:"C:\Users\123\Desktop\vite-test"指向文件目录地址 3、prefixes:接受的环境变量前缀,不写默认为 env

export default defineConfig(({command,mode})=>{ const env = loadEnv(mode,process.cwd(),prefixes="") console.log(env); // 这里APP_KEY 110,并且BASE_URL也对应的是测试环境地址,挂载到env下面 // ......其他配置})

process.cwd():返回当前node进程的工作目录

当我们调用loadEnv的时候,它会做如下几件事情: 1、直接找到.env文件,并解析其中的环境变量,放到一个对象里

2、将传进来的mode这个变量的值进行拼接:.env.development,并根据提供的目录去取对应的配置文件进行解析,并放进一个对象里

3、我们可以理解为下面的操作: const baseEnvConfig = 读取.env的配置 const modeEnvConfig = 读取.env.mode(根据传入的mode决定,mode=development那么就是.env.development)文件 const lastEnvConfig = {...baseEnvConfig,...modeEnvConfig}

如果是客户端,vite会将对应的环境变量注入到import.meta.env里面去。 但是这里vite做了一个拦截,为了防止我们将隐私性的变量直接注入到import.meta.env,我们的环境变量就必须得是VITE_开头,否则vite不会将环境变量注入到import.meta.env

// .env.development文件:开发环境APP_KEY = 110 BASE_URL = http://dev.api/// request.jsconsole.log('import.meta.env的内容',import.meta.env)

未找到.env.development文件中的环境变量,因为开头不是VITE_,vite拦截了注入操作。

// .env.development文件:开发环境VITE_APP_KEY = 110 VITE_BASE_URL = http://dev.api/

当然,VITE_是一个默认前缀,我们也可以在vite.base.config.js文件中更改import.meta.env注入的默认前缀:

import { defineConfig } from "vite";export default defineConfig({ envPrefix:"ABC_" // 配置import.meta.env注入的前缀名称})

到这里环境变量配置就已经完成了,如果我们想要添加新的环境,例如:测试环境,那么只需要新建一个.env.test文件

// .env.test文件:测试环境ABC_APP_KEY = 111ABC_BASE_URL = http://test.api/

在package.json中添加测试环境的启动方式"test" : "vite --mode test"

{ "scripts": { "dev": "vite", "build" : "vite build", "test" : "vite --mode test" }, // ......其它配置}

启动npm run test,loadEnv会自动根据--mode test来寻找环境变量文件,.env后拼接test,也就是.env.test文件

// request.jsconsole.log('import.meta.env的内容',import.meta.env)// 利用配置的环境变量请求const getUserInfo = () => { axios.post({ params : { APP_KEY : import.meta.env.ENV_APP_KEY // 根据环境变量自动匹配APP_KEY } })}
本文链接地址:https://www.jiuchutong.com/zhishi/292417.html 转载请保留说明!

上一篇:阿布鲁佐的Rocca Calascio,意大利 (© Francesco Russo/eStock Photo)(阿布鲁佐的特点)

下一篇:vue使用jsMind(思维导图)(vue 使用js)

  • 淘宝店如何迅速提高信誉(淘宝店怎么快速提升销量)

    淘宝店如何迅速提高信誉(淘宝店怎么快速提升销量)

  • 微信运动有的人突然不显示了为什么(微信运动有的人不能关注)

    微信运动有的人突然不显示了为什么(微信运动有的人不能关注)

  • 华为手机强制开机按什么键(华为手机强制开机没反应)

    华为手机强制开机按什么键(华为手机强制开机没反应)

  • 手机怎样用乐播投屏到电视(手机怎样乐播投屏到电视)

    手机怎样用乐播投屏到电视(手机怎样乐播投屏到电视)

  • 搜索发现怎么删除不了(搜索发现怎么删除不了百度)

    搜索发现怎么删除不了(搜索发现怎么删除不了百度)

  • 微信语音转文字没了(微信语音转文字失败是怎么回事啊)

    微信语音转文字没了(微信语音转文字失败是怎么回事啊)

  • qq龙王标识怎么关闭(qq龙王标识怎么获得)

    qq龙王标识怎么关闭(qq龙王标识怎么获得)

  • 淘宝号是会员名吗(淘宝号是会员名怎么取消)

    淘宝号是会员名吗(淘宝号是会员名怎么取消)

  • mov格式用什么播放器(mov格式用什么播放)

    mov格式用什么播放器(mov格式用什么播放)

  • 改密保手机几小时生效(更改密保手机后还能找回去么)

    改密保手机几小时生效(更改密保手机后还能找回去么)

  • 小米手环久置怎么激活(小米手环久置怎么关机)

    小米手环久置怎么激活(小米手环久置怎么关机)

  • 栅格化图层是什么意思(栅格化图层样式怎么弄)

    栅格化图层是什么意思(栅格化图层样式怎么弄)

  • ie浏览器停止工作怎么解决(ie浏览器已停止工作出现了一个问题)

    ie浏览器停止工作怎么解决(ie浏览器已停止工作出现了一个问题)

  • iphonexs有指纹锁吗(苹果xs可以指纹)

    iphonexs有指纹锁吗(苹果xs可以指纹)

  • 会员连续包月第一个月可以取消吗(会员连续包月第二个月可以取消吗)

    会员连续包月第一个月可以取消吗(会员连续包月第二个月可以取消吗)

  • xr网速为什么这么卡(为什么iphonexr网速慢)

    xr网速为什么这么卡(为什么iphonexr网速慢)

  • 为啥快手一开直播就闪退(为啥快手一开直播就黑屏)

    为啥快手一开直播就闪退(为啥快手一开直播就黑屏)

  • 加密文件怎么解密(加密文件怎么解密如何解除)

    加密文件怎么解密(加密文件怎么解密如何解除)

  • 虎牙怎么投屏电视(虎牙投屏电视没声音怎么解决)

    虎牙怎么投屏电视(虎牙投屏电视没声音怎么解决)

  • 运维堡垒主机是什么?有什么作用?(运维 堡垒机)

    运维堡垒主机是什么?有什么作用?(运维 堡垒机)

  • 手机设备管理在哪里(手机设备管理在哪里找?)

    手机设备管理在哪里(手机设备管理在哪里找?)

  • 老年机电话卡怎么安装(老年机电话卡怎么办理)

    老年机电话卡怎么安装(老年机电话卡怎么办理)

  • postmaster.exe是什么进程  postmaster进程查询(post-secondary program)

    postmaster.exe是什么进程 postmaster进程查询(post-secondary program)

  • 自定义映射resultMap(映射器可以定义参数类型)

    自定义映射resultMap(映射器可以定义参数类型)

  • phpcms v9搬家不同步怎么办

    phpcms v9搬家不同步怎么办

  • 最好最实用的织梦二次开发教程(最好最实用的织毛线)

    最好最实用的织梦二次开发教程(最好最实用的织毛线)

  • 附加税的税率表
  • 退回企业所得税的账务处理
  • 什么是税收超额征收
  • 增值税税差怎么算
  • 货拉拉电子货票收款凭证是发票吗
  • 未开具发票负数的原因
  • 出口退税企业退税时间
  • 公司车买保险怎么付款
  • 企业盘活资产的方法有哪些
  • 政府补助款提现流程
  • 物流快递代收货款怎么退
  • 库存商品期末计量
  • 新办企业地税要备案吗
  • 工资薪金税前扣除比例
  • 国家税务总局13号文
  • 民办学校都没有编制吗
  • 往来款可以作为投资款吗
  • 生产设备软件服务有哪些
  • 应收预收账款属于什么科目
  • 错误代码11-1114
  • linux怎么改桌面背景
  • 什么叫经济作物和粮食作物
  • 解除劳动关系取公积金
  • php初学
  • 组策略阻止了这个程序0x800704ec
  • php ado
  • PHP:pg_field_size()的用法_PostgreSQL函数
  • 已收到材料至月末仍未收到发票账单
  • 加载分页
  • php csrf攻击
  • 房产备案交税
  • 淘宝买建材
  • react的高阶组件理解
  • 材料款零头抹掉怎么做凭证
  • 其他业务收入负数坐在贷方
  • 如何设置长期有效的群二维码安卓手机
  • 发票带折扣怎么开
  • 前端技巧
  • 增值税留抵税额退税政策
  • 业务招待费的报销额度是多少
  • 财务费用相关指标
  • 应交税费为什么写在借方
  • mysql的环境配置
  • 交易性金融资产的账务处理
  • 加工费怎么做账
  • 公司奖励员工制度
  • 合同终止已开发怎么办
  • 赠送给客户的产品怎么做账
  • 净利润增长率计算方式
  • 用友作废的凭证怎么恢复
  • 长期股权投资其他权益变动
  • 未开票收入是否代表可以不开发票
  • 销售废旧物资计入哪个科目
  • 发票税率如何填写
  • 解除职工劳动关系补偿
  • 失控发票进项税转出企业无法承担所得税怎么办
  • mysql 5.7.31安装
  • windows10怎样安装
  • SUSE Linux Enterprise Server 11 SP3安装教程详解
  • 苹果mac怎么复制文字
  • centos7 lo
  • linux快捷命令
  • win7系统开机无限重启
  • win10系统打不开应用程序
  • bios升级失败后如何恢复
  • Win10 Mobile 10586.312提前体验
  • cortana win10
  • win10的播放设置在哪
  • cocosdx让AppDelegate支持全局更新机制
  • unity多人语音
  • linux查看目录的权限的命令
  • Android屏幕适配分屏
  • python怎么用数组
  • python排序算法比较
  • jq拖拽功能
  • 一般纳税人资格查询
  • 应税销售额如何计算
  • 车辆购置税查询怎么查
  • 增值税号和增值税账号的区别
  • 卡车生产企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设