Почему Require не определяется с помощью WebExtension (расширение Chrome для FireFox)

Я пытаюсь портировать Chrome Extension на Nightly(на данный момент), используя модуль webextension, но, когда я пытаюсь сделать require ("sdk / tabs");

var tabs = require("sdk/tabs");

tabs.on("ready",function(tabs) {
  if (tabs && tabs.url && tabs.url.match(driveURLpattern) || tabs.url.match(docsURLpattern)) {
    currentTabId = tabs.id;
    return authentication();
  }

});

Консоль: ReferenceError: требование не определено

Но это не работает... Как я могу определить это?

ОБНОВЛЕНИЕ: Оригинальный код для Chrome:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status === 'complete') {
  if (tab && tab.url && tab.url.match(driveURLpattern) || tab.url.match(docsURLpattern)) {
    currentTabId = tab.id;
    return authentication();
  }
}

});

Заранее спасибо!

eKivOx

РЕДАКТИРОВАТЬ: РЕШЕНИЕ БЫЛО НАЙДЕНО. БЛАГОДАРЮ ВАС

Решение заключается в том, что require отсутствует в WebExtensions, мы не можем делать как SDK-дополнения, поэтому я проверил совместимость ChromeAPi и увидел, что chrome.tabs.onUpdated() совместим!Cya

1 ответ

require используется в контексте модулей CommonJS. Импортирует методы, экспортируемые библиотечными модулями. Вы не можете перенести расширение Chrome на FF-аддон как есть. Вам нужно создать новое расширение Firefox с помощью JPM, а в скрипте дополнения использовать require

НТН

Другие вопросы по тегам