配置式路由中router路径大小写不一致导致的问题

本文讲述了开发者在CI环境中遇到的打包问题,由于操作系统大小写敏感性差异,路由配置中的小写与大写组件路径不一致导致打包失败。解决办法是调整路由配置并确保路径完全匹配实际组件。

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

近期开发的时候遇到一个奇妙的问题,就是某一次提交之后突然发现线上CI打包一直失败,之前其实遇到过类似的问题,当时分析之后判断是CI打包机器的环境问题,简单来说是打包机器的node版本和本地的node版本不一致,而且跨度有点大,导致CI失败,这次同样考虑到了之前遇到的问题,怀疑又是node版本本地和CI机器不一致导致的问题,排查了半天,删除了打包机的缓存,切换了版本还是报错。。。

后面仔细查看了CI打包过程的Log日志,发现核心的提示是有部分components找不到导致的问题,思路切换到了项目工程的路由配置上面来,之后翻阅了一些网上的资料,自己也看了一下具体的报错组件,对比不报错的,发现原因是因为routes.ts里面配置的components字段有部分大小写和实际项目组件路径不一致(这里是使用的umi的配置式路由)。

{

  name: 'detail',

  path: 'detail',

  component: '@/pages/accident/manager/detail',

}

实际组件是在pages/accident/manager/Detail/index.ts中的

但是问题是本地开发和打包都没有报任何异常,为何打包机就出错不认识了呢?

经过调研发现原因是因为操作系统的缘故,mac这边是大小写不敏感的,所以兼容了Detail和detail,但是打包机是centos的大小写敏感,于是报错了。

发现问题之后很快把detail改成Detail,之后尝试重新CI打包,果然问题就解决了…这个坑真的是…综上,以后这些路径配置最好还是按照实际路径的来,不要为了好看或者格式统一使用兼容的写法,容易给自己挖坑。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值