2017-11-06 11 views
0

バベルによって提供されるポリフィルを抑制する方法はありますか?たとえば、次のようにtranspiling:バベルによって提供されるポリフィルを抑制する

const obj = { a: 1 }; 
const obj2 = { ...obj }; 

ウィル出力

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 

var obj = { a: 1 }; 
var obj2 = _extends({}, obj); 

私は出力にそれをしたいと思います:

var obj = { a: 1 }; 
var obj2 = Object.assign({}, obj); 

により、当社のコードベースの性質のために、私は希望しますObject.assign polyfillを提供して、それが転移するときにこの変換を行わないようにしてください。私はドキュメントを読んだが、これを実現させる方法を見つけることはできない。これは可能ですか?

+0

なぜそれを望みますか?バベルの方法は防弾です。 –

+1

'Object.assign'ポリフィルが最初に実行されている限り、' _extends'はあなたのポリフィルを使用します。私は本当に問題は見ません。問題がある場合は、それが何であるか、なぜバベルの行動を抑圧したいのかを明確に説明してください。 – JLRishe

+0

愚かなように見えるかもしれませんが、私たちはコードベースの各ファイルを個別に表示します(私はこれはばかげていると思います)。したがって、1ページに10個のjsファイルをロードする場合、この変換は10回表示されます。したがって、ファイルの実際の実行ではなく、ファイルに重みを追加することです。 –

答えて

1

object rest spread transform pluginを使用しているようです。ドキュメントに書かれているように、独自のpolyfillを提供するのではなく、組み込み関数を使用するように設定することができます。 .babelrcを使用してビルドプロセスを設定している場合は、次のように変更するだけです。

{ 
    ... 
    "plugins": [ 
    ["transform-object-rest-spread", { "useBuiltIns": true }] 
    ] 
} 
+0

ありがとう、私はドキュメントでこれを逃したとは思わない! –

関連する問題