РЕД.. Это не о жирных стрелках. Это также не переход к IIFE. Это вопрос, связанный с транспилером.
Итак, я создал простой pub-sub для небольшого приложения, над которым я работаю. Я написал в ES6 для использования распространения/отдыха и сохранения некоторых головных болей. Я установил его с npm и gulp, чтобы перекрыть его, но это сбило меня с ума.
Я сделал его библиотекой браузера, но понял, что его можно использовать в любом месте, поэтому я решил сделать его совместимым с Commonjs и AMD.
Здесь урезана версия моего кода:
(function(root, factory) {
if(typeof define === 'function' && define.amd) {
define([], function() {
return (root.simplePubSub = factory())
});
} else if(typeof module === 'object' && module.exports) {
module.exports = (root.simplePubSub = factory())
} else {
root.simplePubSub = root.SPS = factory()
}
}(this, function() {
// return SimplePubSub
});
Но независимо от того, что я пытаюсь (например, сделать это переменной и передавать ее), она устанавливает значение undefined.
}(undefined, function() {
Вероятно, это что-то связано с Вавилоном, не зная, что это будет и перетаскивает его, но есть ли другой подход, который я могу принять?
ОБНОВЛЕНИЕ: передача }((window || module || {}), function() {
вместо этого, похоже, работает. Я не уверен, что это лучший подход, хотя.