Kerusakan kompatibilitas ke belakang pada paket NPM yang populer telah menyebabkan crash di berbagai proyek.

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

Tambah komentar