J'ai besoin d'aide pour diagnostiquer et corriger cette erreur:
"Error: only one instance of babel-polyfill is allowed"
J'ai le suivant dans mon 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" ...
Et ceci et cette ligne d’entrée dans ma config de 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']
}
}
]}
Si le coupable est HtmlWebpackPlugin, vous devez ajouter l'option inject: false
lors de l'instanciation du plugin. Certaines configurations sans cette option entraînent le chargement de votre code javascript construit deux fois.
Idempotent Babel Polyfill peut être importé plusieurs fois
Installer depuis NPM
npm install --save idempotent-babel-polyfill
Puis importez-le
import 'idempotent-babel-polyfill';
Only one instance of babel-polyfill is allowed
apparaît généralement si l'ordre des fichiers à emballer n'est pas correct lors de l'utilisation de CommonsChunkPlugin ou HtmlWebpackPlugin.
pour HtmlWebpackPlugin vous pouvez trier manuellement vos fichiers avec chunksSortMode
Utiliser "webpack": "^1.14.0"
:
new HtmlWebpackPlugin({
...
chunksSortMode: 'dependency',
...
}),
Vous l’obtenez peut-être indirectement à partir d’un autre module Babel.
Solutions possibles:
référence: https://github.com/babel/babel/issues/1019
commentaire de jameslk
Je l'ai compris quand même. Il semble que babel-runtime ait été déplacé vers babel-plugin-transform-runtime et cela doit être ajouté à la liste des plugins pour pouvoir l'utiliser. Serait aidé si cela a été documenté quelque part.