Javascript Mozilla插件中的模块和动态导入

Javascript Mozilla插件中的模块和动态导入,javascript,firefox-addon,mozilla,Javascript,Firefox Addon,Mozilla,我找到了一种方便的方法,可以将我的Chrome扩展转换成模块(更易于维护等)。我是这样做的(将background.js转换为一个模块,然后使用动态导入来获取模块) 导入的简化版本: (async () => { const src = chrome.extension.getURL("your/content_main.js"); const contentMain = await import(src); contentMain.main(); })(); 我的问题是:如

我找到了一种方便的方法,可以将我的Chrome扩展转换成模块(更易于维护等)。我是这样做的(将background.js转换为一个模块,然后使用动态导入来获取模块)

导入的简化版本:

(async () => {
  const src = chrome.extension.getURL("your/content_main.js");
  const contentMain = await import(src);
  contentMain.main();
})();
我的问题是:如何在Mozilla Firefox中实现它?正如我为这两种浏览器开发的一样(首先是Chrome浏览器,然后将内容复制到Firefox文件中,并更改所需内容)。早些时候,我只是简单地将Firefox版本所需的所有功能都包含在文件中,但因为我至少有20个文件,所以会变得枯燥乏味,请编辑所有文件等等


当我尝试在Firefox插件中使用dynamic import时,它根本不会加载脚本(控制台中没有错误日志或任何内容),因此我不知道问题的确切原因(Firefox根本不支持它吗?)。

如果您不介意使用构建工具,我发现它可以很好地解决这个问题。使用

通过NPM安装
$npm安装包裹插件web扩展--保存开发
从终端构建
$parcel build--out dir dist firefox dist/manifest.json

这是错误报告。正如错误报告所示,Firefox仍然不支持这一点。也许到2026年……相关:你现在可以用它了。目前,您必须在其“夜间”版本中安装3个模块:
npm安装parcel@nightly@parcel/config-webextension@nightly@包裹/变压器-webextension@nightly