Как не дать Babel перевести «this» в «undefined» (и вставить «use strict»)
РЕДАКТИРОВАТЬ: Этоне о толстых стрелах, Это также не про прохождениеэтот дляIIFE, Это вопрос, связанный с транспортом.
Итак, я создал простой паб-саб для небольшого приложения, над которым я работаю. Я написал это в ES6, чтобы использовать распространение / отдых и сохранить некоторые головные боли. Я настроил это с помощью npm и глотнул, чтобы пропустить это, но это сводит меня с ума.
Я сделал это браузерной библиотекой, но понял, что ее можно использовать где угодно, поэтому решил совместить ее с 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, function() {
Наверное, это как-то связано с тем, что Бабель не знает, чтоэтот будет и переносить это прочь, но есть ли другой подход, который я могу предпринять?
ОБНОВИТЬ: Прохождение}((window || module || {}), function() {
вместоэтот похоже на работу. Я не уверен, что это лучший подход.