不兼容的babel-loader和babel-core版本

8
我通过npm安装了babel-corebabel-loader和其他几个包。
npm install babel-loader babel-core ...

这导致在我的package.json中出现了以下定义。
"dependencies": {
  "babel-core": "^6.26.3",
  "babel-loader": "^8.0.0",
  ...
},

在提问时,最新版本的babel-core确实是6.26.3,而babel-loader的最新版本是8.0.0,这是根据npmjs.com存储库的说法。
然而,当我再次运行npm install以验证一切是否正常时,我会收到以下消息:
npm WARN babel-loader@8.0.0 requires a peer of @babel/core@^7.0.0 but none is installed. You must install peer dependencies yourself.

为什么babel-loader依赖于一个尚不存在的babel-core版本呢?解决这个警告的推荐方法是什么?

谢谢!

编辑 看起来babel-loader库仅在4天前发布。这可能是由于最近发布导致的问题吗?

enter image description here


请注意,您需要安装@babel/core而不是babel-core。这个包没有问题,只是您安装了错误的核心包。我们是否可以做些什么来改进文档呢?安装文档甚至包括两者的示例:https://www.npmjs.com/package/babel-loader - loganfsmyth
3个回答

9

babel-loader@8.x是用于Babel 7.x的Webpack集成。Babel 7.x将所有软件包从babel-前缀移动到@babel npm作用域。

错误是正确的,您错误地安装了babel-core而不是@babel/core

如果您希望安装Babel 6.x,则可以执行以下操作:

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

但如果你要开始一个新项目,使用Babel 7会更有意义,所以你最好这样做。

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

2

我刚刚5分钟前也遇到了同样的错误,我通过重新安装babel-loader来解决了这个问题。

npm r babel-loader
npm i babel-loader@7

0

正如我所怀疑的那样,这是一个版本问题。

我去了版本历史页面,找到了一个与最新的babel-core版本发布时间相近的babel-loader版本,因此它们很可能能够良好地配合使用。

在这种情况下,是6个月前的7.1.4版本。

从那里开始一切都很顺利。令人难以置信的是,软件包管理器的关键优势之一是解决依赖关系问题,但是像这样的项目却存在如此基本的失败。

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

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接