我在将npm模块更改为ES2015时无法正常工作。
我有一个由browserify捆绑的ES2015应用程序,并通过babelify进行转换。我正在尝试升级名为信用卡的npm模块进行信用卡验证,该模块在当前版本中已从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上,缺少信用卡模块的导出功能。
Here's a printscreen of a console log of the module in IE
看起来IE中完全缺少默认值。这是一个已知的问题?你们之前有没有遇到过这个问题,可以给我一些提示吗?有关如何调查此问题以了解出现问题以及如何解决问题的任何指示?
答案 0 :(得分:0)
单步执行IE11调试器中的require()
我发现IE11中Object.assign
undefined
存在问题。经过一番搜索,我找到了this thread。这个问题的答案最终得到了解决。我需要将polyfill添加到我的browserify包中并使用opt "transform-es2015-classes"
启用loose: true
插件(有关代码,请参阅this thread)。