npm: Forçar resolução para versão específica


Alerta falha de segurança

As vezes você pode receber um alerta de potencial falha de segurança em seu projeto e um npm audit fix não conseguir resolver de forma automática.

Isso acontece pois a falha encontrada é de alguma dependência de algum pacote que o seu projeto usa, e não diretamente no pacote em si.

Por exemplo: foi encontrada uma falha no lodash. Seu projeto não depende diretamente do lodash mas depende do eslint, e o eslint sim depende do lodash. Então até que o package.json do eslint seja atualizado com a versão do lodash que tenha a correção dessa falha, você pode contornar o problema forçando a instalação de uma versão específica.

Para isso faremos dois ajustes no package.json do nosso projeto.

Primeiro adicione uma propriedade resolutions, e nela coloque o pacote e a versão que deseja forçar a instalar.

{
  "resolutions": {
    "lodash": "^4.17.19"
  }
}

Depois na propriedade scripts, adicione um preinstall assim:

"scripts": {
  "preinstall": "npx npm-force-resolutions"
}

Feito isso basta rodar um npm i para instalar as dependências e pronto!