Модули и динамический импорт в аддоне Mozilla - PullRequest
0 голосов
/ 30 января 2019

Я нашел удобный способ превратить свое расширение 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 голосов
/ 09 августа 2019

Если вы не возражаете против использования инструмента для сборки, я обнаружил, что parcel работает довольно хорошо для этого.Используйте плагин веб-расширения .

Установка через NPM

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

Сборка с терминала

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