一般的な NPM パッケージの下位互換性の侵害により、さまざまなプロジェクトでクラッシュが発生する

NPM リポジトリでは、人気のある依存関係の新しいバージョンの問題により、別の大規模なプロジェクトがクラッシュしています。 問題の原因は、CSS を別のファイルに抽出するように設計された mini-css-extract-plugin 2.5.0 パッケージの新しいリリースでした。 このパッケージは毎週 10 万以上ダウンロードされ、7 を超えるプロジェクトの直接の依存関係として使用されています。

新しいバージョンでは、ライブラリをインポートするときに下位互換性に違反する変更が加えられ、ドキュメントに記載されている以前は有効だった構造「const MiniCssExtractPlugin = require('mini-css-extract-plugin')」を使用しようとするとエラーが発生しました。これは、新しいバージョンに切り替えるときに、「const MiniCssExtractPlugin = require("mini-css-extract-plugin").default」に置き換える必要がありました。

この問題は、依存関係を含める際にバージョン番号に明示的にバインドしないプロジェクトで発生しました。 回避策として、Yarn に '"overrides": {"mini-css-extract-plugin": "2.4.5"}' を追加するか、コマンド " を使用して、過去のバージョン 2.4.5 へのバインディングを修正することをお勧めします。 npm i -D --save-exact [メール保護]» 故宮にて。

被害者の中には、Facebook が開発した create-react-app パッケージのユーザーも含まれており、このパッケージには依存関係として mini-css-extract-plugin が含まれています。 mini-css-extract-plugin バージョン番号へのバインドがないため、create-react-app を実行しようとすると、「TypeError: MiniCssExtractPlugin はコンストラクターではありません」というエラーが発生して終了しました。 この問題は、@wordpress/scripts、@auth0/auth0-spa-js、sql-formatter-gui、LedgerSMB、vip-go-mu-plugins、cybros、vue-cli、chore などのパッケージにも影響しました。

出所: オープンネット.ru

コメントを追加します