2017-05-10 1 views
2

「バベル-ポリフィルの1つのインスタンスのみが許可されている」私はこのエラーを診断し、固定助ける必要があります。がエラー

"Error: only one instance of babel-polyfill is allowed" 

私はpackage.jsonに次き:

"devDependencies": { 
    "babel-core": "^6.23.1", 
    "babel-jest": "^19.0.0", 
    "babel-loader": "^6.3.2", 
    "babel-plugin-transform-object-rest-spread": "^6.23.0", 
    "babel-preset-es2015": "^6.22.0", 
    "babel-preset-react": "^6.23.0" ... 

"dependencies": { 
    "babel-polyfill": "^6.23.0" ... 

そして、これ私のwebpack設定のこの入力行は

entry: ["babel-polyfill", path.resolve(APP_PATH, 'index')], 
... 
module: { 
rules: [ 
    { 
    test: /\.js$/, 
    exclude: /node_modules/, 
    loader: 'babel-loader', 
    query: { 
     // specify that we will be dealing with React code 
     presets: ['react', 'es2015'] 
    } 
    } 
]} 
+0

私のwebpack設定では、HtmlWebpackPluginが原因です。私はこのプラグインを削除すると、私はエラーが遠ざかります。 – foobar

+0

エントリを変更しようとします:[path.resolve(APP_PATH、 'index')] – user3770494

+0

babel-polyfillを使用していますので、それはどこかにある。代わりにインポートをどこかに追加することもできますが、同じエラーが発生します。私がそれを削除すると、エラーが発生します:Uncaught ReferenceError:regeneratorRuntimeが定義されていません。 – foobar

答えて

1

おそらく他のいくつかのバベルモジュールから間接的に取得しています。

可能なソリューション:

  1. はバベルモジュールsame.Possiblyエラーのすべてのバージョンを確認しますバベル-polyfilの異なるバージョンによるものです。
  2. babel-polyfilをpackage.jsonから削除すると、
    babel-plugin-transform-object-rest-spreadから使用されます。

参照: https://github.com/babel/babel/issues/1019

jameslk

I figured it out anyway. It looks like babel-runtime has been moved to babel-plugin-transform-runtime and this needs to be added to the list of plugins to use it. Would of helped if that was documented somewhere.

+0

ご返信ありがとうございます。ありがとうございました。私はいくつかのことを試して、私の依存関係からHtmlWebpackPluginを削除しました。理想的な解決策ではありませんが、少なくともエラーはなくなりました。あなたが提供した2つのソリューションを考えてみましょう:1.私はノードモジュールに1つのbabel-polyfillインストールを見つけることができました。2. babel-polyfillを削除した後も同じエラーが出ます。私の問題は、自分の依存関係に* babel-cli *と* html-webpack-plugin *があり、それらを共存させる方法を見つけることができなかったことだと思います。 – foobar

0

によってコメント犯人がHtmlWebpackPluginある場合は、プラグインをインスタンス化する際のオプションinject: falseを追加する必要があります。このオプションを指定しないと、ビルドされたjavascriptコードが2回読み込まれます。