版本依赖问题: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 的兼容性

相关推荐
瑞瑞小同学2 小时前
处理echarts x轴内容过多,重叠问题
前端·javascript·echarts
HexCIer2 小时前
面向未来的原子化 CSS:UnoCSS 核心架构分析与 Tailwind CSS 现状
前端·css·vite
程序员黑豆2 小时前
鸿蒙应用开发中的单位详解:px、vp、fp、lpx
前端·harmonyos
像我这样帅的人丶你还3 小时前
MCP + npm:给五年前的老系统接上AI
前端·javascript·agent
南一Nanyi3 小时前
依赖注入和控制反转
前端·设计模式·nestjs
小村儿3 小时前
连载14-实战篇--一个半月,我一个人和 Claude Code 搭出一套数字人工程
前端·后端·ai编程
愚公移码3 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
promiseThen3 小时前
5 分钟上手 Markdown:标题到表格、代码块与简历实战
前端
web66liang3 小时前
webpack4+vue2项目使用 sass-embedded 导致的 DockerfIle 构建失败的问题
前端
Strayer4 小时前
拓扑管网 3D 可视化大屏demo:科技感(地图 + 拓扑 + 3D 空间)
前端·three.js·数据可视化