vite build,得到了:
这个错误到底意味着什么
@crxjs/vite-plugin 在 crx:manifest-post 步骤(位于 generateBundle)里把每个 content script 解析到它输出的文件。如果插件无法把你的 content script 源文件匹配到某个输出 chunk(原因通常是那个 chunk 的命名或键值方式),文件名就是 undefined,插件随即抛出错误。这并不是“你的文件不存在”。这是插件和打包器对你 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。

