我找到了将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只是不支持它)全部?)。
答案 0 :(得分:0)
如果您不介意使用构建工具,我会发现parcel
可以很好地解决这个问题。使用web extension plugin。
$ npm install parcel parcel-plugin-web-extension --save-dev
$ parcel build --out-dir dist-firefox dist/manifest.json