Η παραβίαση της συμβατότητας προς τα πίσω στο δημοφιλές πακέτο NPM προκαλεί σφάλματα σε διάφορα έργα

Το αποθετήριο NPM βλέπει άλλο ένα τεράστιο σφάλμα έργου λόγω ενός προβλήματος με μια νέα έκδοση μιας δημοφιλούς εξάρτησης. Η πηγή των προβλημάτων ήταν η νέα έκδοση του πακέτου mini-css-extract-plugin 2.5.0, σχεδιασμένο να εξάγει το CSS σε ξεχωριστά αρχεία. Το πακέτο έχει περισσότερες από 10 εκατομμύρια εβδομαδιαίες λήψεις και χρησιμοποιείται ως άμεση εξάρτηση για περισσότερα από 7 έργα.

Στη νέα έκδοση, έγιναν αλλαγές που παραβίασαν τη συμβατότητα προς τα πίσω κατά την εισαγωγή της βιβλιοθήκης και οδήγησαν σε σφάλμα κατά την προσπάθεια χρήσης της προηγούμενης έγκυρης κατασκευής "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" που περιγράφεται στην τεκμηρίωση , το οποίο, κατά τη μετάβαση στη νέα έκδοση έπρεπε να αντικατασταθεί με το "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

Το πρόβλημα εκδηλώθηκε σε έργα που δεν συνδέονται ρητά με τον αριθμό έκδοσης όταν περιλαμβάνουν εξαρτήσεις. Ως λύση, συνιστάται να διορθώσετε τη δέσμευση στην προηγούμενη έκδοση 2.4.5 προσθέτοντας '"overrides": {"mini-css-extract-plugin": "2.4.5"}' στο Yarn ή χρησιμοποιώντας την εντολή " npm i -D --save-exact [προστασία μέσω email]» στο NPM.

Μεταξύ των θυμάτων ήταν χρήστες του πακέτου δημιουργίας-αντίδρασης-εφαρμογής που αναπτύχθηκε από το Facebook, το οποίο περιλαμβάνει ως εξάρτηση το πρόσθετο mini-css-extract. Λόγω της έλλειψης δέσμευσης με τον αριθμό έκδοσης του 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 κ.λπ.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο