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

相关推荐
Apifox2 小时前
如何在 Apifox 中快速构建和调试 AI Agent
前端·agent·ai编程
一晌贪欢i2 小时前
WebContainer 重点介绍
前端·webcontainer
山河木马2 小时前
Emscripten 从 C/C++ 调用 JavaScript
前端·javascript·c++
鹏程十八少2 小时前
12. Android 协程通关秘籍:31 道资深工程师面试题精讲
前端·后端·面试
Dlrb12113 小时前
C语言-字符串指针与函数指针
java·c语言·前端
PBitW3 小时前
组件封装注意事项
前端·vue.js
weiggle3 小时前
Android 输入事件分发流程:从物理触控到 Activity 的完整旅程
前端
yingyima3 小时前
开发者必备在线工具集合 2025:实战案例解析
前端
前端毕业班3 小时前
面试官:实现一个带类型约束的 EventEmitter
前端·面试