Почему 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
НТН