Incompatible babel-loader and babel-core versions

user2490003 picture user2490003 · Aug 31, 2018 · Viewed 8.1k times · Source

I installed babel-core, babel-loader, and a few other packages via npm

npm install babel-loader babel-core ...

This resulted in the following definitions in my package.json

"dependencies": {
  "babel-core": "^6.26.3",
  "babel-loader": "^8.0.0",
  ...
},

At the time of this question, the latest version of babel-core is indeed 6.26.3 and the latest version of babel-loader is 8.0.0 as per npmjs.com repository.

However when I run npm install again to verify everything, I get this message:

npm WARN [email protected] requires a peer of @babel/core@^7.0.0 but none is installed. You must install peer dependencies yourself.

Why would babel-loader depend on a version of babel-core that doesn't exist yet? And what's the recommended way to resolve this warning?

Thanks!

EDIT Looks like the babel-loader library was published only 4 days ago. Could this be a relatively recent problem caused by this being published?

enter image description here

Answer

loganfsmyth picture loganfsmyth · Aug 31, 2018

[email protected] is the Webpack integration used for Babel 7.x. Babel 7.x has moved all packages from a babel- prefix to the @babel npm scope.

The error is correct, you have incorrectly installed babel-core instead of @babel/core.

If you wish to install Babel 6.x, you can do

npm install --save-dev babel-loader@7 babel-core

but if you're starting a new project, Babel 7 makes much more sense, so you would ideally do

npm install --save-dev babel-loader @babel/core