定制开发【Vite】Vite设置好了Proxy,但接口却404,解决方案来了

前言

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

错误原因

.config.ts

const viteEnv = loadEnv(configEnv.mode, `.env.${configEnv.mode}`) as ImportMetaEnv 
  • 1

上面这个是之前老版本的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; } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

其实整个看下来很难找到问题,我反复看了多次,感觉写的没啥毛病,排查完之后发现问题的本身居然在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; 
  • 1

成功!~

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发