版本依赖问题:vite-plugin-dts@3.1.0 与 jiti 的兼容性

你们有没有过原本好好的项目工程,切换了node版本或者改了一些不相关的配置,然后它就出异常了,虽然也没改什么,总觉的是切到大动脉。最近公司一个老项目突然打包失败了,项目执行:pnpm build:test,然后就报错,从提示看是找不到Collector.js.js

当然很明显,文件名肯定是错误的。

less 复制代码
Error: Cannot find module 'E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\vite-plugin-dts@3.1.0_@types+node@20.5.1_less@4.1.3_sass@1.63.6_typescript@5.9.3\node_modules\@microsoft\api-extractor\lib-commonjs\collector\Collector.js.js'
at createEsmNotFoundErr (node:internal/modules/cjs/loader:1244:15)
at finalizeEsmResolution (node:internal/modules/cjs/loader:1232:15)
at resolveExports (node:internal/modules/cjs/loader:638:14)
at Module._findPath (node:internal/modules/cjs/loader:711:31)
at Module._resolveFilename (node:internal/modules/cjs/loader:1193:27)
at Function.resolve (node:internal/modules/helpers:193:19)
at _resolve (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:246378)
at jiti (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:249092)
at E:/gwm-voice-op-mgr-fe-发布/node_modules/.pnpm/vite-plugin-dts@3.1.0_@types+node@20.5.1_less@4.1.3_sass@1.63.6_typescript@5.9.3/node_modules/vite-plugin-dts/dist/index.cjs:14:22
at evalModule (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:251913)
at jiti (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:249841)
at E:/gwm-voice-op-mgr-fe-发布/internal/vite-config/src/config/package.ts:3:45
at evalModule (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:251913)
at jiti (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:249841)
at E:/gwm-voice-op-mgr-fe-发布/internal/vite-config/src/index.ts:2:16
at evalModule (E:\gwm-voice-op-mgr-fe-发布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:251913)
ELIFECYCLE  Command failed with exit code 1.

这是一个 monorepo 项目,上面的错误指向的是 pnpm 依赖问题,错误显示 vite-plugin-dts 在尝试加载 @microsoft/api-extractor 的模块时找不到文件。

问题定位:

  1. internal/vite-config 包是存在测 : pnpm-workspace.yaml 配置了 internal/* 作为 workspace 包,但该文件名是 Collector.js.js (多了一个 .js )
  2. node_modules 中存在残留缓存 :旧的构建产物引用了已删除的 vite-plugin-dts 依赖

错误路径中的版本是 typescript@5.9.3 ,但实际安装的是 typescript@5.1.6 。是典型的版本依赖问题。

lock.yaml 中存在两个 typescript 版本:

  • typescript@5.1.6 - 被 vite-plugin-dts 使用
  • typescript@5.9.3 - 被 cosmiconfig-typescript-loader 使用

错误原因是:

这是一个 pnpm + jiti + vite-plugin-dts 的兼容性问题:Collector.js 文件存在,但 jiti 错误地查找 Collector.js.js 。这是 vite-plugin-dts@3.1.0 与 jiti 的兼容性问题。

  • vite-plugin-dts 使用 jiti 动态加载 @microsoft/api-extractor
  • 错误路径 Collector.js.js (多了一个 .js )表明模块解析出错
  • pnpm 的严格依赖结构导致路径解析混乱

解决方案 :

这是 vite-plugin-dts@3.1.0 的已知 bug。解决方案是升级到修复版本:

操作:

  • internal/vite-config/package.json - 升级 vite-plugin-dts 到 ^3.2.0
  • package.json - 添加 pnpm.overrides 固定 @microsoft/api-extractor 版本
  • 清理node_modules并重新安装依赖

原文链接:# 版本依赖问题:vite-plugin-dts@3.1.0 与 jiti 的兼容性

相关推荐
GreenTea4 小时前
GrokBot 核心成员 Lauren Tan:每月交付 2000 个 PR 的人,是怎么用 AI 的
前端·后端·架构
mCell5 小时前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
笃行3506 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel7 小时前
前端加密的作用与使用场景
前端
计算机魔术师8 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真8 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒8 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
掰头战士9 小时前
多重影分身!恨不得把一个agent掰成两个? 还真能干!
typescript·llm·agent
八荒启·交互动画10 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计10 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能