L'incompliment de la compatibilitat enrere del popular paquet NPM provoca bloquejos en diversos projectes

El repositori NPM està veient un altre bloc massiu del projecte a causa d'un problema amb una nova versió d'una dependència popular. L'origen dels problemes va ser la nova versió del paquet mini-css-extract-plugin 2.5.0, dissenyat per extreure CSS en fitxers separats. El paquet té més de 10 milions de descàrregues setmanals i s'utilitza com a dependència directa per a més de 7 projectes.

A la nova versió, es van fer canvis que infringien la compatibilitat enrere en importar la biblioteca i van provocar un error en intentar utilitzar la construcció prèviament vàlida "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" descrita a la documentació. , que, en canviar a la nova versió, s'havia de substituir per "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

El problema es va manifestar en projectes que no s'uneixen explícitament al número de versió quan s'inclouen dependències. Com a solució alternativa, es recomana arreglar l'enllaç a la versió anterior 2.4.5 afegint '"overrides": {"mini-css-extract-plugin": "2.4.5"}' a Yarn o utilitzant l'ordre " npm i -D --save-exact [protegit per correu electrònic]» a NPM.

Entre les víctimes hi havia usuaris del paquet create-react-app desenvolupat per Facebook, que inclou el mini-css-extract-plugin com a dependència. A causa de la manca d'enllaç amb el número de versió del mini-css-extract-plugin, els intents d'executar create-react-app van acabar amb l'error "TypeError: MiniCssExtractPlugin no és un constructor". El problema també va afectar els paquets @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, etc.

Font: opennet.ru

Afegeix comentari