2016-03-25 7 views
0

babel変換を使用してBrowserifyへのエントリポイントにbabel-polyfillをインポートした後、IE11は依然としてObject.assignについて不平を言っています。 Object.assignに加えて、私のプロジェクトでは、Number.isNan、HTMLElement.contains、KeyboardEvent.keyなどの数多くの新しいAPIが使用されています。babel-polyfillを使用して読み込まれるpolyfills

このプラグインを使用してポリフィルが追加されたことに関するドキュメントは見つかりません。誰もが、このプラグインによってpolyfilledされているAPIや、包括的なリストを見つけることができる場所を知っていますか? Object.assignはまだ定義されていないように、ケースではないようです

「これは完全なES6環境をエミュレートします」

:私は見つけることができるすべては、この文でした。

答えて

0

githubのsourceを見ると、文字列埋め込みメソッドと配列メソッドがあります。言い換えれば、あなたが参照した見積もりはマーケティング話しです。必要なものには別のポリフィルを使用してください。そのようなものをたくさんpolyfillすることはそれほど難しいことではありません。 MDN

if (typeof Object.assign != 'function') { 
    (function() { 
    Object.assign = function (target) { 
     'use strict'; 
     if (target === undefined || target === null) { 
     throw new TypeError('Cannot convert undefined or null to object'); 
     } 

     var output = Object(target); 
     for (var index = 1; index < arguments.length; index++) { 
     var source = arguments[index]; 
     if (source !== undefined && source !== null) { 
      for (var nextKey in source) { 
      if (source.hasOwnProperty(nextKey)) { 
       output[nextKey] = source[nextKey]; 
      } 
      } 
     } 
     } 
     return output; 
    }; 
    })(); 
} 
0

から

Number.isNaN = Number.isNaN || function(n) { return n !== n; }; 

バベル-ポリフィルのソースを見てみると、それはあります:

// 19.1.3.1 Object.assign(target, source) 
var $export = _dereq_(33); 

$export($export.S + $export.F, 'Object', {assign: _dereq_(66)}); 
},{"33":33,"66":66}],178:[function(_dereq_,module,exports){ 
var $export = _dereq_(33) 

バベルのバージョンを使用していますか?そしてあなたはbrowserifyに正しいbabelプラグインを含んでいますか?

+0

バベルのバージョンは6です。私が読み込んでいるプリセットはes2015で反応します。 Object.assignプリセットを個別にインクルードする必要がありますか? –

+0

また、バージョン6では、babel-polyfillがまったく必要ですか? –

+0

はいbabel6にbabel-polyfillが必要です。正しく理解すれば問題はIE11固有のものですか?これは厄介な具体的なケースかもしれません... –

関連する問題