web-dev-qa-db-ja.com

互換性のないbabel-loaderとbabel-coreバージョン

babel-corebabel-loader、およびnpmを介して他のいくつかのパッケージをインストールしました

npm install babel-loader babel-core ...

これにより、私のpackage.jsonに次の定義が作成されました。

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

この質問の時点で、npmjs.comリポジトリによると、babel-coreの最新バージョンは確かに6.26.3であり、babel-loaderの最新バージョンは8.0.0です。

ただし、すべてを確認するためにnpm installを再度実行すると、次のメッセージが表示されます。

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

babel-loaderが、まだ存在しないbabel-coreのバージョンに依存するのはなぜですか?そして、この警告を解決するための推奨される方法は何ですか?

ありがとう!

[〜#〜] edit [〜#〜]babel-loaderライブラリはわずか4日前に公開されたようです。これは、これが公開されたことによって引き起こされた比較的最近の問題でしょうか?

enter image description here

7
user2490003

それで、それは私が疑ったようにバージョン管理の問題でした。

babel-loaderバージョン履歴ページ にアクセスして、最新のbabel-loaderバージョンとほぼ同時期に公開されたbabel-coreのバージョンを見つけたため、彼らはお互いにうまくいくでしょう。

この場合、6か月前の7.1.4でした。

そこからすべてがうまくいきました。パッケージマネージャーの主な利点の1つが依存関係の問題を解決できることです。しかし、このようなプロジェクトには根本的な失敗があります。

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

enter image description here

0
user2490003

[email protected]は、Babel 7.xで使用されるWebpack統合です。 Babel 7.xは、すべてのパッケージをbabel-プレフィックスから@babelnpmスコープに移動しました。

エラーは正しいです。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
4
loganfsmyth

5分前に同じエラーが発生しましたが、babel-loaderを再インストールすることで修正しました。

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