Отсутствует экспорт модулей в IE11/Edge

89
11

У меня возникли проблемы с работой модуля npm, поскольку он был изменен на ES2015.

У меня есть приложение ES2015, которое связано с браузером и преобразовано с помощью babelify. Я пытаюсь обновить модуль npm с кредитной картой для проверки кредитной карты, который был изменен с ES5 на ES6 в текущей версии. Проблема начинается с IE11/Edge. Код отлично работает в Chrome. Здесь, как модуль импортируется в преобразованное приложение (Babel'd code):

var _this = this;

var _creditCard = require('credit-card');

var _creditCard2 = _interopRequireDefault(_creditCard);

Здесь фрагмент кода, называющий это:

this.validateCreditCard = function () {
var ccNumber = _this.account_number_credit_card.value.replace(/\D/, '');
_this.creditCardValidation = {
accountHolder: _this.account_holder_credit_card.value.replace(/\W/g, '').length >= 2,
cvc: _this.account_cvc_credit_card.value.replace(/\D/g, '').length > 2,
accountNumber: _creditCard2.default.isValidCardNumber(ccNumber, _creditCard2.default.determineCardType(ccNumber, { allowPartial: true }))
};
return _underscore2.default.all(_underscore2.default.values(_this.creditCardValida tion));
};

Теперь в Chrome это работает без проблем. Однако в IE отсутствуют экспортируемые функции модуля кредитной карты.

Здесь находится печатный экран консольного журнала модуля в IE

И вот Chrome

Похоже, что в IE полностью отсутствуют значения по умолчанию. Это известная проблема? Кто-нибудь из вас столкнулся с этой проблемой раньше и может дать мне несколько советов? Любые указатели на то, как я мог исследовать эту проблему, чтобы понять, что происходит не так, и как я могу это исправить?

спросил(а) 2021-01-25T20:53:31+03:00 4 месяца, 2 недели назад
1
Решение
126

Выбрав require() в IE11 Debugger, я обнаружил, что проблема с Object.assign не undefined в IE11. После некоторых поисков я нашел эту тему. Ответ в этой теме был проработан в конце. Мне нужно было добавить polyfill в свой пакет для браузера и включить плагин "transform-es2015-classes" с "transform-es2015-classes" loose: true (см. Эту тему для кода).

ответил(а) 2021-01-25T20:53:31+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема