Repositori NPM kembali mengalami penghentian proyek besar-besaran karena masalah pada versi baru dari salah satu dependensi populer. Sumber masalahnya adalah rilis baru paket mini-css-extract-plugin 2.5.0, yang dirancang untuk mengekstrak CSS ke dalam file terpisah. Paket ini memiliki lebih dari 10 juta unduhan mingguan dan digunakan sebagai ketergantungan langsung pada lebih dari 7 ribu proyek.
Dalam versi baru, perubahan dilakukan yang melanggar kompatibilitas mundur saat mengimpor perpustakaan dan menyebabkan kesalahan saat mencoba menggunakan konstruksi dokumentasi yang sebelumnya valid dan dijelaskan dalam konstruksi βconst MiniCssExtractPlugin = require('mini-css-extract-plugin') β, yang ketika beralih ke versi baru perlu diganti dengan βconst MiniCssExtractPlugin = require(βmini-css-extract-pluginβ).defaultβ.
Masalahnya muncul dalam proyek yang tidak secara eksplisit mengikat nomor versi ketika menyertakan dependensi. Sebagai solusinya, disarankan untuk memperbaiki tautan ke versi 2.4.5 sebelumnya dengan menambahkan '"overrides": {"mini-css-extract-plugin": "2.4.5"}' di Yarn atau menggunakan perintah " npm i -D" --simpan-tepat [email dilindungi]" di NPM.
Di antara korbannya adalah pengguna paket aplikasi create-react-yang dikembangkan oleh Facebook, yang menghubungkan mini-css-extract-plugin sebagai ketergantungan. Karena kurangnya pengikatan pada nomor versi mini-css-extract-plugin, upaya untuk meluncurkan create-react-app berakhir dengan kesalahan βTypeError: MiniCssExtractPlugin bukan konstruktor.β Masalah ini juga mempengaruhi paket @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, dll.
Sumber: opennet.ru