Sự phá vỡ khả năng tương thích ngược trong gói NPM phổ biến đã gây ra sự cố trong nhiều dự án khác nhau.

Kho lưu trữ NPM đang gặp phải một đợt ngừng hoạt động lớn khác của các dự án do sự cố trong phiên bản mới của một trong những phần phụ thuộc phổ biến. Nguồn gốc của vấn đề là do bản phát hành mới của gói mini-css-extract-plugin 2.5.0, được thiết kế để trích xuất CSS thành các tệp riêng biệt. Gói này có hơn 10 triệu lượt tải xuống hàng tuần và được sử dụng làm phần phụ thuộc trực tiếp cho hơn 7 nghìn dự án.

Trong phiên bản mới, các thay đổi đã được thực hiện đã vi phạm khả năng tương thích ngược khi nhập thư viện và dẫn đến lỗi khi cố gắng sử dụng giá trị hợp lệ trước đó và được mô tả trong cấu trúc tài liệu “const MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, khi chuyển sang phiên bản mới cần thay thế bằng “const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

Vấn đề thể hiện ở các dự án không liên kết rõ ràng với số phiên bản khi bao gồm các phần phụ thuộc. Để khắc phục, bạn nên sửa liên kết đến phiên bản 2.4.5 trước đó bằng cách thêm '"overrides": {"mini-css-extract-plugin": "2.4.5"}' trong Yarn hoặc sử dụng lệnh " npm i -D" --save-chính xác [email được bảo vệ]" trong NPM.

Trong số các nạn nhân có người dùng gói ứng dụng tạo phản ứng do Facebook phát triển, gói này kết nối plugin mini-css-extract-plugin như một phần phụ thuộc. Do thiếu liên kết với số phiên bản plugin mini-css-extract-plugin, các nỗ lực khởi chạy ứng dụng tạo phản ứng đã kết thúc với lỗi “TypeError: MiniCssExtractPlugin không phải là hàm tạo”. Sự cố này cũng ảnh hưởng đến các gói @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, v.v.

Nguồn: opennet.ru

Thêm một lời nhận xét