版本依賴問題:vite-plugin-dts@3.1.0 與 jiti 的兼容性

你們有沒有過原本好好的項(xiàng)目工程,切換了node版本或者改了一些不相關(guān)的配置,然后它就出異常了,雖然也沒改什么,總覺的是切到大動(dòng)脈。最近公司一個(gè)老項(xiàng)目突然打包失敗了,項(xiàng)目執(zhí)行:pnpm build:test,然后就報(bào)錯(cuò),從提示看是找不到Collector.js.js。

當(dāng)然很明顯,文件名肯定是錯(cuò)誤的。


Error: Cannot find module 'E:\gwm-voice-op-mgr-fe-發(fā)布\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-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:246378)
at jiti (E:\gwm-voice-op-mgr-fe-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:249092)
at E:/gwm-voice-op-mgr-fe-發(fā)布/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-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:251913)
at jiti (E:\gwm-voice-op-mgr-fe-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:249841)
at E:/gwm-voice-op-mgr-fe-發(fā)布/internal/vite-config/src/config/package.ts:3:45
at evalModule (E:\gwm-voice-op-mgr-fe-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:251913)
at jiti (E:\gwm-voice-op-mgr-fe-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:249841)
at E:/gwm-voice-op-mgr-fe-發(fā)布/internal/vite-config/src/index.ts:2:16
at evalModule (E:\gwm-voice-op-mgr-fe-發(fā)布\node_modules\.pnpm\jiti@1.21.7\node_modules\jiti\dist\jiti.js:1:251913)
ELIFECYCLE? Command failed with exit code 1.

這是一個(gè) monorepo 項(xiàng)目,上面的錯(cuò)誤指向的是 pnpm 依賴問題,錯(cuò)誤顯示 vite-plugin-dts 在嘗試加載 @microsoft/api-extractor 的模塊時(shí)找不到文件。

問題定位:

  1. internal/vite-config 包是存在測(cè) : pnpm-workspace.yaml 配置了 internal/* 作為 workspace 包,但該文件名是 Collector.js.js (多了一個(gè) .js )
  2. node_modules 中存在殘留緩存 :舊的構(gòu)建產(chǎn)物引用了已刪除的 vite-plugin-dts 依賴

錯(cuò)誤路徑中的版本是 typescript@5.9.3 ,但實(shí)際安裝的是 typescript@5.1.6 。是典型的版本依賴問題。

lock.yaml 中存在兩個(gè) typescript 版本:

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

錯(cuò)誤原因是:

這是一個(gè) pnpm + jiti + vite-plugin-dts 的兼容性問題:Collector.js 文件存在,但 jiti 錯(cuò)誤地查找 Collector.js.js 。這是 vite-plugin-dts@3.1.0 與 jiti 的兼容性問題。

  • vite-plugin-dts 使用 jiti 動(dòng)態(tài)加載 @microsoft/api-extractor
  • 錯(cuò)誤路徑 Collector.js.js (多了一個(gè) .js )表明模塊解析出錯(cuò)
  • pnpm 的嚴(yán)格依賴結(jié)構(gòu)導(dǎo)致路徑解析混亂

解決方案 :

這是 vite-plugin-dts@3.1.0 的已知 bug。解決方案是升級(jí)到修復(fù)版本:

screenshot_2026-05-14_14-10-18.png

操作:

  • internal/vite-config/package.json - 升級(jí) vite-plugin-dts 到 ^3.2.0
  • package.json - 添加 pnpm.overrides 固定 @microsoft/api-extractor 版本
  • 清理node_modules并重新安裝依賴

原文鏈接:# 版本依賴問題:vite-plugin-dts@3.1.0 與 jiti 的兼容性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容