このエラーを診断して修正するのに助けが必要です:
"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']
}
}
]}
犯人がHtmlWebpackPluginの場合、プラグインをインスタンス化するときにオプションinject: false
を追加する必要があります。このオプションを使用しない特定の構成では、ビルドされたjavascriptコードが2回ロードされます。
べき等バベルポリフィルは複数回インポート可能
NPMからインストール
npm install --save idempotent-babel-polyfill
次にインポートする
import 'idempotent-babel-polyfill';
Only one instance of babel-polyfill is allowed
は通常、CommonsChunkPluginまたはHtmlWebpackPluginを使用するときに、ラップされるファイルの順序が正しくない場合に表示されます。
htmlWebpackPluginの場合、chunksSortModeを使用してファイルを手動でソートできます。
"webpack": "^1.14.0"
を使用:
new HtmlWebpackPlugin({
...
chunksSortMode: 'dependency',
...
}),
他のバベルモジュールから間接的に取得している可能性があります。
可能な解決策:
参照: https://github.com/babel/babel/issues/1019
jameslkによるコメント
とにかくそれを理解しました。 babel-runtimeはbabel-plugin-transform-runtimeに移動したようです。これを使用するには、プラグインのリストに追加する必要があります。それがどこかに文書化されていれば助けになるだろう。