vite2+vue3在vite.config下使用env环境变量的方法

博客探讨了在Vite中如何正确处理环境变量的问题。由于Vite的配置文件加载顺序导致的先验环境变量解析问题,作者提供了一个解决方案:使用envResolve函数动态加载.env文件。该函数确保了即使.env文件位于配置文件指定的不同根目录下,也能正常工作。博客还引用了Vite创建者Evan You的解释,强调了配置文件与.env文件解析的正确顺序对于避免冲突的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看文档发现Vite 环境变量是通过import.meta.env 对象暴露的,但在vite.config中行不通,经过一通乱找,发现原来是这样用的:

const envResolve = (mode: string, env: string) => loadEnv(mode, process.cwd())[env];
export default ({ command, mode }: ConfigEnv): UserConfigExport =>{
  return {
    base: envResolve(mode, 'VITE_PUBLIC'),
    plugins: [vue()]
  }
}

具体原因:

There’s a chicken-egg problem here: Vite expects to resolve .env files from project root, but project root can be made different by the config file.
So if we resolve .env before resolving the config file, we can only resolve it from CWD, which would then break the case where the user puts .env files in a nested root specified via config.
——Evan You

参考博客:https://www.jianshu.com/p/4973bd983e96

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值