La violación de la compatibilidad con versiones anteriores en el popular paquete NPM provoca fallas en varios proyectos

El repositorio de NPM está experimentando otro bloqueo masivo del proyecto debido a un problema con una nueva versión de una dependencia popular. La fuente de los problemas fue la nueva versión del paquete mini-css-extract-plugin 2.5.0, diseñado para extraer CSS en archivos separados. El paquete tiene más de 10 millones de descargas semanales y se utiliza como dependencia directa para más de 7 proyectos.

En la nueva versión, se realizaron cambios que violaron la compatibilidad con versiones anteriores al importar la biblioteca y generaron un error al intentar usar la construcción anteriormente válida "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" descrita en la documentación , que, al cambiar a la nueva versión, debía reemplazarse con "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

El problema se manifestó en proyectos que no se vinculan explícitamente al número de versión al incluir dependencias. Como solución alternativa, se recomienda arreglar el enlace a la versión anterior 2.4.5 agregando '"overrides": {"mini-css-extract-plugin": "2.4.5"}' en Yarn o usando el comando " npm i -D --save-exacto [email protected]» en MNP.

Entre las víctimas había usuarios del paquete create-react-app desarrollado por Facebook, que incluye el mini-css-extract-plugin como dependencia. Debido a la falta de vinculación con el número de versión de mini-css-extract-plugin, los intentos de ejecutar create-react-app terminaron con el error "TypeError: MiniCssExtractPlugin no es un constructor". El problema también afectó a los paquetes @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, etc.

Fuente: opennet.ru

Añadir un comentario