Jervis2049 / vite-plugin-crx-mv3

Build a Chrome Extension with Vite⚡
201 stars 30 forks source link

Manifest.web_accessible_resources 似乎没有处理 content script 所动态引入的 injected.js #31

Closed zhangbobell closed 10 months ago

zhangbobell commented 1 year ago

非常感谢提供了这个插件,有一个问题可以探讨一下:

https://github.com/Jervis2049/vite-plugin-crx-mv3/blob/ac37170310a1084328d2685a4faccc3707efe49b/src/processors/manifest.ts#L225 ,似乎只是处理了 content script 的 import 的资源,但是没有处理动态引入的资源,比如通过 chrome.runtime.getURL 引入的 injected.js(当然,我看到处理编译的时候,是有的。在这里似乎漏掉了?)

zhangbobell commented 1 year ago

另外,还有一个疑问,我发现 content_script 的脚本,会默认包含在 web_accessible_resources,但是实际上,这两者的职能还是略有不同的,前者是 content script,后者主要是 for injected js 的。不清楚为何会这么处理?

Jervis2049 commented 12 months ago

好的,感谢你提出的问题,我抽空再看看,最近比较忙。

Jervis2049 commented 11 months ago

另外,还有一个疑问,我发现 content_script 的脚本,会默认包含在 web_accessible_resources,但是实际上,这两者的职能还是略有不同的,前者是 content script,后者主要是 for injected js 的。不清楚为何会这么处理?

两者的区别我是知道的,这里应该是我的疏忽,接下来会安排修复。

Jervis2049 commented 11 months ago

非常感谢提供了这个插件,有一个问题可以探讨一下:

https://github.com/Jervis2049/vite-plugin-crx-mv3/blob/ac37170310a1084328d2685a4faccc3707efe49b/src/processors/manifest.ts#L225

,似乎只是处理了 content script 的 import 的资源,但是没有处理动态引入的资源,比如通过 chrome.runtime.getURL 引入的 injected.js(当然,我看到处理编译的时候,是有的。在这里似乎漏掉了?)

是的,当时是想着手动引入那些,这个后续我优化一下。

Jervis2049 commented 11 months ago

另外,还有一个疑问,我发现 content_script 的脚本,会默认包含在 web_accessible_resources,但是实际上,这两者的职能还是略有不同的,前者是 content script,后者主要是 for injected js 的。不清楚为何会这么处理?

我再仔细看了一下,那个 content_script 的脚本确实是要包含在 web_accessible_resources的。因为我是通过是这种方式加载content_script的,没有直接引入原文件。这种方式主要是为了在content_scripts可以使用vue,react等。

 //contentscript-loader-content.c1931bfa.js
(function () {
  (async () => {
        await import(
          chrome.runtime.getURL("assets/content.c1931bfa.js")
        );
      })().catch(console.error);
  })();

image