在IE11 / Edge中缺less模块导出

自从更改为ES2015以来,我无法使npm模块正常工作。

我有一个由browserify捆绑在一起的ES2015应用程序,并用babelify转换。 我试图升级一个名为信用卡的npm模块进行信用卡validation,在当前版本中,它从ES5更改为ES6。 问题始于IE11 / Edge。 该代码在Chrome上正常工作。 以下是模块在转换的应用程序(babel'd代码)中的导入方式:

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上,信用卡模块的输出function缺失。

这是IE中模块的控制台日志的打印屏幕

这里是Chrome

它看起来像默认是完全缺失在IE中。 这是一个已知的问题? 你们有没有遇到过这个问题,可以给我一些提示? 任何关于如何调查这个问题的指针,以了解发生了什么问题,以及如何修复它?

在IE11debugging器中单步debuggingrequire() ,发现IE11中的Object.assign undefined 。 经过一番search,我发现这个线程 。 这个线程的答案最终得出结论。 我需要添加polyfill到我"transform-es2015-classes"包,并启用"transform-es2015-classes"插件与selectloose: true (请参阅此线程的代码)。