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

时间:2019-01-30 17:30:41

标签: javascript firefox-addon mozilla

我找到了将Chrome扩展程序转换为模块的便捷方法(易于维护等)。我是这样https://stackoverflow.com/a/53033388/9182284做到的(将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插件中使用动态导入时,它只是根本不加载脚本(没有错误日志或控制台中没有任何内容),所以我并不完全知道问题所在(Firefox只是不支持它)全部?)。

1 个答案:

答案 0 :(得分:0)

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

通过NPM安装

$ npm install parcel parcel-plugin-web-extension --save-dev

从终端构建

$ parcel build --out-dir dist-firefox dist/manifest.json