web-dev-qa-db-fra.com

Versions babel-loader et babel-core incompatibles

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?

 enter image description here

5
user2490003

[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 @babelnpm

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
2
loganfsmyth

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
0
Nuriddin Kudratov

C'était donc un problème de version comme je le suspectais. 

Je suis allé à la page d'historique babel-loaderversion 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",
  ...
},

enter image description here

0
user2490003