Определение модуля UMD примерно такое:
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['exports', 'b'], factory);
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
// CommonJS
factory(exports, require('b'));
} else {
// Browser globals
factory((root.commonJsStrict = {}), root.b);
}
}(this, function (exports, b) {
//use b in some fashion.
// attach properties to the exports object to define
// the exported module properties.
exports.action = function () {};
}));
Проблема заключается в том, что Chrome Расширения не поддерживают ни один из следующих методов экспорта модуля:
-
define
не существует exports
не существует this
не связано с window
По этой причине кажется, что модули UMD выходят из строя в Chrome средах расширения. Есть ли обходной путь, чтобы заставить модуль UMD правильно экспортировать в window
объект в Chrome расширении?