2016-09-01 3 views
2

npmモジュールがES2015に変更されたため、動作するのに問題があります。IE11/Edgeのモジュールエクスポートがありません

私はbrowserifyによってバンドルされ、babelifyで変換されたES2015アプリを持っています。私は、現在のバージョンでES5からES6に変更されたクレジットカード検証のために、クレジットカードと呼ばれるnpmモジュールをアップグレードしようとしています。問題は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

And here's Chrome

デフォルトは完全にIEに欠けているように見えます。これは既知の問題ですか?これまでにこの問題に遭遇したことがありますか?何がうまくいかないのかを理解するためにこの問題を調査する方法と、それをどう修正することができるかについての指針はありますか?

答えて

0

IE11デバッガでrequire()を実行すると、Object.assignがIE11のundefinedに問題があることがわかりました。いくつかの検索の後、私はthis threadを見つけた。このスレッドの答えは結局解決しました。私は私のbrowserifyバンドルにpolyfillを追加し、loose: true(コードはthis threadを参照)で"transform-es2015-classes"プラグインを有効にする必要がありました。

関連する問題