【Vite】Vite设置好了Proxy,但接口却404!解决方案来了!

简介: 前言最近在做一个Vue3+Vite+TypeScript的项目,进行一番网上冲浪后,参考了众多🐴友的方案,配置完vite.config.ts准备开始与后端的同学开始联调,发现无论怎么样都是404,然后就开始了一步步的排查!

前言

最近在做一个Vue3+Vite+TypeScript的项目,进行一番网上冲浪后,参考了众多🐴友的方案,配置完vite.config.ts准备开始与后端的同学开始联调,发现无论怎么样都是404,然后就开始了一步步的排查!

错误原因

vite.config.ts

const viteEnv = loadEnv(configEnv.mode, `.env.${configEnv.mode}`) as ImportMetaEnv
复制代码

上面这个是之前老版本的vite的写法

proxy:

server: {
    host: '0.0.0.0',
    port: 3200,
    open: true,
    proxy: createViteProxy(viteEnv)
}
function createViteProxy(viteEnv: ImportMetaEnv) {
   const isOpenProxy = viteEnv.VITE_HTTP_PROXY === 'true';
  if (!isOpenProxy) return undefined;
  const { http } = getEnvConfig(viteEnv);
  const proxy: Record<string, string | ProxyOptions> = {
    [http.proxy]: {
      target: http.url,
      changeOrigin: true,
      rewrite: path => path.replace(new RegExp(`^${http.proxy}`), '')
    }
  };
  return proxy; 
}
复制代码

其实整个看下来很难找到问题,我反复看了多次,感觉写的没啥毛病,排查完之后发现问题的本身居然在viteEnv上,我打印了一下viteEnv发现根本就没有VITE_HTTP_PROXY这个属性,然后就觉得是loadEnv有问题,上官网看了看,果然,这里说一下loadEnv

  • 检查process.cwd()路径下.env.development.local、.env.development、.env.local、.env这四个环境文件。
  • 输出NODE_ENV和VITE_开头的键值对。
  • VITE_开头的键值对后面的不会覆盖前面的。
  • NODE_ENV的值后面的会覆盖前面的。

新版本改成了这样写

const viteEnv = loadEnv(configEnv.mode, process.cwd()) as ImportMetaEnv;
复制代码

成功!~


目录
相关文章
|
6月前
|
API
在vite.config.js 配置代理
在vite.config.js 配置代理
682 2
|
前端开发 搜索推荐 API
webpack和vite devServer的进阶用法:配置proxy修改请求和响应
在前端日常开发中我们一般都是配置本地开发服务器的proxy来解决跨域问题,查看官网文档或者通过搜索引擎搜出来的都是比较基础的用法。
2057 0
|
1月前
|
安全 API
vite 中配置代理
【10月更文挑战第5天】
331 61
|
27天前
|
监控 JavaScript 安全
在 Vue 项目中配置 CORS 时的注意事项
【10月更文挑战第20天】在 Vue 项目中配置 CORS 需要综合考虑多个方面的因素,从配置的准确性、稳定性、兼容性到测试、监控和安全等。通过细心的规划和实施,以及与团队成员的协作,可以有效地解决跨域问题,并确保项目的顺利进行。
|
1月前
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
265 0
|
2月前
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
本文讨论了在配置Vite项目时遇到的`vite.defineConfig is not defined`错误,这通常是由于缺少必要的导入语句导致的。文章还涉及了如何创建最新版本的Vite项目以及如何处理`configEnv is not defined`的问题。
112 3
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
|
4月前
Vite 项目中如何去集成 Mock 环境 (插件:vite-plugin-mock)
Vite 项目中如何去集成 Mock 环境 (插件:vite-plugin-mock)
180 0
|
6月前
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
223 1
|
6月前
|
JavaScript API
vite配置代理
vite配置代理
145 4
|
11月前
|
JavaScript 小程序
VUE3(三十五)vite构建的项目配置使用.env文件
VUE3(三十五)vite构建的项目配置使用.env文件如标题所示:我要在vue3项目使用.env文件。 先介绍一下项目背景,项目使用VUE3.2 + vite2.9 + typescript搭建。 我基本断定,vue3使用.env文件的方法可能和vue2使用.env文件的方法可能是不同,关于vue2项目如何使用.env文件,请移步《VUE2(七)VUE配置env文件使用》
392 1
下一篇
无影云桌面