Violação de compatibilidade com versões anteriores no popular pacote NPM causa falhas em vários projetos

O repositório NPM está passando por outra paralisação massiva de projetos devido a problemas na nova versão de uma das dependências populares. A origem dos problemas foi o novo lançamento do pacote mini-css-extract-plugin 2.5.0, projetado para extrair CSS em arquivos separados. O pacote tem mais de 10 milhões de downloads semanais e é utilizado como dependência direta de mais de 7 mil projetos.

Na nova versão, foram feitas alterações que violaram a retrocompatibilidade na importação da biblioteca e geraram erro ao tentar utilizar a construção anteriormente válida e descrita na documentação “const MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, que ao mudar para a nova versão precisou ser substituído por “const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

O problema se manifestou em projetos que não se vinculavam explicitamente ao número da versão ao incluir dependências. Como solução alternativa, é recomendado corrigir o link para a versão anterior 2.4.5 adicionando '"overrides": {"mini-css-extract-plugin": "2.4.5"}' no Yarn ou usando o comando " npm i -D" --save-exato [email protegido]"no NPM.

Entre as vítimas estavam usuários do pacote create-react-app desenvolvido pelo Facebook, que conecta o mini-css-extract-plugin como uma dependência. Devido à falta de ligação ao número da versão do mini-css-extract-plugin, as tentativas de iniciar o create-react-app terminaram com o erro “TypeError: MiniCssExtractPlugin não é um construtor”. O problema também afetou os pacotes @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, etc.

Fonte: opennet.ru

Adicionar um comentário