A violación da compatibilidade cara atrás no popular paquete NPM provoca fallos en varios proxectos

O repositorio de NPM está a experimentar outra interrupción masiva dos proxectos debido a problemas na nova versión dunha das dependencias populares. A orixe dos problemas foi a nova versión do paquete mini-css-extract-plugin 2.5.0, deseñado para extraer CSS en ficheiros separados. O paquete ten máis de 10 millóns de descargas semanais e úsase como dependencia directa de máis de 7 mil proxectos.

Na nova versión, realizáronse cambios que violaron a compatibilidade con versións anteriores ao importar a biblioteca e provocaron un erro ao intentar utilizar o anteriormente válido e descrito na construción da documentación “const MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, que ao cambiar á nova versión debía ser substituído por “const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

O problema manifestouse en proxectos que non se vinculaban explícitamente ao número de versión ao incluír dependencias. Como solución alternativa, recoméndase corrixir a ligazón á versión anterior 2.4.5 engadindo '"overrides": {"mini-css-extract-plugin": "2.4.5"}' en Yarn ou usando o comando " npm i -D" --save-exact [protexido por correo electrónico]"en NPM.

Entre as vítimas estaban os usuarios do paquete create-react-app desenvolvido por Facebook, que conecta mini-css-extract-plugin como dependencia. Debido á falta de vinculación ao número de versión do mini-css-extract-plugin, os intentos de lanzar create-react-app remataron co erro "TypeError: MiniCssExtractPlugin non é un construtor". O problema tamén afectou aos paquetes @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, etc.

Fonte: opennet.ru

Engadir un comentario