位置: 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)

  • 怎样关闭微博微公益(怎样关闭微博微店)

    怎样关闭微博微公益(怎样关闭微博微店)

  • 苹果手机快手极速版签到入口在哪里(苹果手机快手极速版红包挂件隐藏了在哪开)

    苹果手机快手极速版签到入口在哪里(苹果手机快手极速版红包挂件隐藏了在哪开)

  • 铁路12306密码格式怎么写(铁路12306的密码格式)

    铁路12306密码格式怎么写(铁路12306的密码格式)

  • 华为隐私空间占内存的吗(华为隐私空间占用多大储存)

    华为隐私空间占内存的吗(华为隐私空间占用多大储存)

  • 华为荣耀8可以用手机u盘吗(华为荣耀8可以升级鸿蒙系统吗)

    华为荣耀8可以用手机u盘吗(华为荣耀8可以升级鸿蒙系统吗)

  • 荣耀v20解锁方式有哪几种(荣耀v20解锁方式怎么设置)

    荣耀v20解锁方式有哪几种(荣耀v20解锁方式怎么设置)

  • 卸载鲁大师什么后果(卸载鲁大师怎么卸载)

    卸载鲁大师什么后果(卸载鲁大师怎么卸载)

  • 简述计算机的主要特点和主要用途(简述计算机的主要特点)

    简述计算机的主要特点和主要用途(简述计算机的主要特点)

  • 局域网lan是指在什么范围内的网络(局域网lan所采用的传输方式为( ))

    局域网lan是指在什么范围内的网络(局域网lan所采用的传输方式为( ))

  • 电脑物理地址有什么用(电脑物理地址有重复的吗)

    电脑物理地址有什么用(电脑物理地址有重复的吗)

  • 发生太多重定位怎么办(发生太多重定位打不开网页)

    发生太多重定位怎么办(发生太多重定位打不开网页)

  • 抖音发私信对方收不到(抖音发私信对方收不到怎么解决)

    抖音发私信对方收不到(抖音发私信对方收不到怎么解决)

  • 转转需要交保证金吗(转转买家需要交保证金吗)

    转转需要交保证金吗(转转买家需要交保证金吗)

  • mpgw2ch/a是什么型号(mp2g2ll/a是什么型号)

    mpgw2ch/a是什么型号(mp2g2ll/a是什么型号)

  • 移动宽带没网怎么解决(移动宽带没网怎么回事)

    移动宽带没网怎么解决(移动宽带没网怎么回事)

  • 三星开不了机一直黑屏(三星 开不了机)

    三星开不了机一直黑屏(三星 开不了机)

  • 好省新人没有邀请口令怎么办(好省邀请了人为什么无效)

    好省新人没有邀请口令怎么办(好省邀请了人为什么无效)

  • 天猫积分怎么换纸巾(天猫积分怎么换钱)

    天猫积分怎么换纸巾(天猫积分怎么换钱)

  • iwatch一二三代的区别(iwatch二代和三代的区别)

    iwatch一二三代的区别(iwatch二代和三代的区别)

  • 此时无法下载迅雷什么意思(为什么下载显示此时无法下载)

    此时无法下载迅雷什么意思(为什么下载显示此时无法下载)

  • 三大运营商4g网速对比(三大运营商4g网络覆盖哪个好)

    三大运营商4g网速对比(三大运营商4g网络覆盖哪个好)

  • pull.exe - pull是什么进程 有什么用(pull-hi)

    pull.exe - pull是什么进程 有什么用(pull-hi)

  • win10开机强制进入安全模式后屏幕闪烁(win10开机强制进入修复模式)

    win10开机强制进入安全模式后屏幕闪烁(win10开机强制进入修复模式)

  • 银行贴现属于贷款吗
  • 公司现金账户归谁管
  • 暂估成本跨年后收到票汇算清缴
  • 未休年假补助
  • 一般纳税人销售农产品增值税税率
  • 企业为什么要进行环境分析
  • 差旅费包括哪些明细
  • 餐饮加盟公司怎么经营
  • 研发准备金的计提比例是多少
  • 自行建造固定资产的计税基础
  • 公司团建收取员工费用
  • 津贴补助如何缴纳个税
  • 转账支票签章如何盖及相关注意事项
  • 烟草生产者消费税计算方法
  • 旅游业是一个怎样的产业
  • 生产性服务业定义
  • 管理不善造成的损失怎么处理
  • 研发失败的项目可以加计扣除吗
  • 一般纳税人出售不动产增值税税率是多少
  • 个人独资企业的特点
  • 增值税的调增调减
  • 报税期间如何开发票?
  • iphone无法打开网页怎么办
  • 怎样知道自己是否贫血
  • windows 10如何使用
  • 应收账款借贷方向表示什么意思
  • 发票已认证还未开票
  • 所有者权益变动表范本
  • 金税盘减免税款申报的时候怎么填写
  • php基础语法
  • php composer自动加载
  • 当月发生的费用下月支付
  • win11系统怎么进入运行界面
  • rasman.exe - rasman是什么进程 有什么作用
  • php数组函数有哪些
  • PasSrv.exe - PasSrv是什么进程 有什么用
  • java 调用go
  • php静态属性和静态方法
  • fping命令参数
  • php与其他语言的比较
  • 取得短期借款会计分录
  • 旅行社怎样进行营销
  • 银行罚息是财务收入吗
  • 多交增值税可以抵扣吗
  • 公司之间的往来账怎么做
  • 购买材料发票未到如何做账?
  • 财务报表上期金额是指什么意思
  • 签发转账支票需要的单据
  • MySQL ERROR 2013 (HY000)错误解决方法
  • 公司注销前欠客户钱
  • 居民和非居民企业的区别是什么
  • 计提坏账准备的金额怎么算的
  • 电子承兑背书一般多久到账
  • 购买银行承兑汇票贴现诈骗
  • 建筑行业异地预缴税率
  • 汇票和本票的区别是
  • 被收购企业账务怎么处理
  • 进项税额转出多了怎么调整
  • 本月取得的发票入账后次月对方能红冲吗
  • 医院的自助缴费机怎么开具发票
  • 公司食堂招待客户,客户付了钱怎么入账
  • 建账时应考虑的问题包括下列哪三项
  • 初次建账应准备哪几种会计本
  • 调整后视镜
  • Windows自带的游戏怎么删除
  • xp电脑如何在网页打开
  • win2003开机蓝屏
  • centos svn服务器搭建web
  • windows8为什么不好用
  • cocos2dx用什么ide
  • 谈谈对环境保护认识话题三分钟
  • shell 多个文件合并
  • nodejs socket框架
  • 安卓手机管家怎么关闭
  • python如何自动化
  • 财产保险合同的种类
  • 应税销售额如何计算
  • 浙江省税务局发票短信
  • 吉林省国税局网站官网
  • 大宗物流服务平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设