vite build,卻得到:
這個錯誤的含義
@crxjs/vite-plugin 會在 crx:manifest-post 步驟(位於 generateBundle)把每個 content script 解析到它輸出的檔案。如果 plugin 無法把你的 content script 來源對應到某個輸出 chunk(通常是因為那個 chunk 的命名或索引方式),檔名就會是 undefined,plugin 隨即拋出例外。這並不是「你的檔案不存在」。這是 plugin 與打包工具對你 content script 輸出 chunk 的認知有歧見。
這是 Vite 8 或 Rolldown 的問題嗎
大部分已經是歷史。Vite 8 把預設打包工具從 Rollup 換成了 Rolldown,CRXJS 為這次轉換做了相容性工作(參見 #1042 與 #1067)。那部分工作已經完成:@crxjs/vite-plugin 現在支援 Vite 8(#1132)。
在目前的版本上(@crxjs/vite-plugin@2.7.0 搭配 Vite 8),這個錯誤在常見設定下不會重現,包含同時以 ?script 匯入的 content script。最初的回報(#883)發生在 Vite 5 加 SolidStart/vinxi 的組合,與 Rolldown 無關。
如何修正
-
把
@crxjs/vite-plugin更新到最新版本(2.7.0 或更新),它支援 Vite 8 與 Rolldown: -
檢查 manifest 如何引用該腳本。 使用與你專案一致、相對於專案根目錄的路徑,並確認同一個檔案沒有在別處以
?script後綴被匯入(重複註冊是目前最常見的邊緣案例)。 -
如果你暫時無法升級, 鎖定
vite@^7(仍以 Rollup 為基礎)可以先解除阻塞,直到你能換到目前版本的@crxjs/vite-plugin。

