2016-09-01 2 views
2

Ich habe Probleme, ein npm-Modul zu erhalten, seit es in ES2015 geändert wurde.Fehlende Modulexporte in IE11/Edge

Ich habe eine ES2015 App, die von browserify gebündelt und mit babelify transformiert wird. Ich versuche ein npm-Modul namens Kreditkarte für die Kreditkartenvalidierung zu aktualisieren, das in der aktuellen Version von ES5 auf ES6 geändert wurde. Das Problem beginnt mit IE11/Edge. Der Code funktioniert in Chrome einwandfrei. Hier ist, wie das Modul in den transformierten app (babel'd Code) importiert wird:

var _this = this; 

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

var _creditCard2 = _interopRequireDefault(_creditCard); 

Hier ist ein Stück Code nennen es:

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)); 
}; 

Jetzt auf Chrome dies ohne Probleme funktioniert. Im IE fehlen jedoch die exportierten Funktionen des Kreditkartenmoduls.

Here's a printscreen of a console log of the module in IE

And here's Chrome

Es wie Standardwerte sieht fehlt vollständig im Internet Explorer. Ist das ein bekanntes Problem? Ist jemand von euch schon einmal auf dieses Problem gestoßen und kann mir Tipps geben? Irgendwelche Hinweise darauf, wie ich dieses Problem untersuchen könnte, um zu verstehen, was schief läuft und wie ich es beheben könnte?

Antwort

0

Beim Durchschreiten der require() in IE11 Debugger fand ich heraus, dass ein Problem mit Object.assignundefined in IE11 war. Nach einigem Suchen fand ich this thread. Die Antwort in diesem Thread hat am Ende funktioniert. Ich musste Polyfill zu meinem browserify-Bundle hinzufügen und das "transform-es2015-classes"-Plugin mit dem opt loose: true (siehe this thread für Code) aktivieren.