J'ai installé babel-core
, babel-loader
et quelques autres paquets via npm
npm install babel-loader babel-core ...
Cela a abouti aux définitions suivantes dans mon package.json
"dependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^8.0.0",
...
},
Au moment de cette question, la dernière version de babel-core
est effectivement 6.26.3
et la dernière version de babel-loader
est 8.0.0
selon le référentiel npmjs.com.
Cependant, quand je lance à nouveau npm install
pour tout vérifier, je reçois ce message:
npm WARN [email protected] requires a peer of @babel/core@^7.0.0 but none is installed. You must install peer dependencies yourself.
Pourquoi babel-loader
dépendrait-il d'une version de babel-core
qui n'existe pas encore? Et quel est le moyen recommandé pour résoudre cet avertissement?
Merci!
EDIT On dirait que la bibliothèque babel-loader
a été publiée il y a seulement 4 jours. Serait-ce un problème relativement récent causé par sa publication?
[email protected]
est l’intégration Webpack utilisée pour Babel 7.x. Babel 7.x a déplacé tous les paquets d’un préfixe babel-
à la portée @babel
npm
.
L'erreur est correcte, vous avez installé babel-core
de manière incorrecte au lieu de @babel/core
.
Si vous souhaitez installer Babel 6.x, vous pouvez faire
npm install --save-dev babel-loader@7 babel-core
mais si vous commencez un nouveau projet, Babel 7 est beaucoup plus logique, alors vous devriez le faire idéalement.
npm install --save-dev babel-loader @babel/core
J'ai eu la même erreur il y a 5 minutes, j'ai corrigé cela en réinstallant babel-loader.
npm r babel-loader
npm i babel-loader@7
C'était donc un problème de version comme je le suspectais.
Je suis allé à la page d'historique babel-loader
version et j'ai trouvé une version de babel-loader
publiée à peu près au même moment que la dernière version de babel-core
. Il était donc probable qu'ils fonctionneraient bien l'un avec l'autre.
Dans ce cas, c'était 7.1.4
d'il y a 6 mois.
Tout a très bien fonctionné à partir de là. Il est extrêmement décevant de constater que l'un des principaux avantages des gestionnaires de paquets est qu'ils résolvent les problèmes de dépendance, mais un projet comme celui-ci a un échec aussi fondamental.
"dependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
...
},