O Github está me dizendo que uma dependência em meu arquivo package-lock.json é vulnerável e desatualizado. O problema é que se eu fizer npm install
ou npm update
nenhum deles atualizar a dependência no arquivo package-lock.json.
Eu pesquisei muito sobre isso, excluí o arquivo e pronto npm install
.
Se alguém puder ajudar a resolver isso, eu agradeço muito. O pacote em questão é Hoek, que eu realmente não tenho em meu arquivo package.json.
Muito obrigado antecipadamente.
node.js
npm
package.json
package-lock.json
Raph117
fonte
fonte
Respostas:
Parece que Hoek é uma dependência de uma de suas dependências (portanto, um pacote que você tem em seu package.json o requer de seu próprio package.json).
Você já tentou deletar / reinstalar e atualizar as dependências do seu projeto sem sucesso, então parece que a dependência do pacote em questão tem uma versão explícita ou máxima especificada.
Sem ver o package.json para cada uma de suas dependências, seria difícil aconselhar mais sobre como forçar uma atualização.
Editar: para ajudá-lo a identificar quais pacotes estão usando quais dependências, você pode usar o
ls
comando do NPM : https://docs.npmjs.com/cli/lsPor exemplo, para ver quais pacotes estão usando Hoek:
npm ls hoek
Edição 2: Como Ulysse BN corretamente aponta, se você tiver o NPM versão 6 ou posterior, você pode usar
npm audit fix
para pedir ao NPM para tentar corrigir as vulnerabilidades para você.Edição 3: Aqueles que estão lendo isso também devem verificar a resposta de JBallin abaixo. Ele amplia as informações que forneci aqui e é (na minha opinião) uma resposta mais estruturada que aborda melhor a pergunta do OP. No entanto - se você deseja uma solução rápida - esta resposta deve bastar.
fonte
package.json
que depende da versão específica (vulnerável) do Growl. Sua resposta está no caminho certo e você talvez pudesse acertá-la se pudesse compartilhar o comando que mostrará quais pacotespackage.json
dependem do vulnerável que aparecepackage-lock.json
.TLDR: Atualize o pacote pai usando
npm i $PARENT_PKG_NAME
.Nota
Ao atualizar dependências, você deve revisar o CHANGELOG para quaisquer alterações importantes.
Diagnóstico
npm audit
revelará o pacote vulnerável (observe que você precisará de um arquivo package-lock.json para isso, portanto, será necessário executá-lonpm i
), bem como o pacote do qual ele depende (se aplicável). Observe que você também pode usarnpm ls $CHILD_PKG_NAME
para ver suas dependências pai.Tentativa de correção rápida
npm audit fix
enpm audit fix --force
vale a pena tentar, mas às vezes a correção precisará ser feita manualmente (veja abaixo).Correção manual
Muito provavelmente o pacote pai já terá corrigido suas dependências (você pode verificar isso acessando o GitHub e revisando os commits recentes - ou apenas vendo se isso corrige), então você pode apenas executar
npm i $PARENT_PKG_NAME @$NEW_VERSION
e ele atualizará seu bloqueio de pacote .json.Se o pai não corrigiu a vulnerabilidade
Se o mantenedor não parece estar respondendo, você pode considerar o uso de um pacote alternativo que realiza a mesma coisa ou bifurcação do pacote e atualização da vulnerabilidade você mesmo.
Verificar correção
Agora você pode verificar se funcionou executando
npm audit
e garantindo que nenhuma vulnerabilidade apareça. Faça o commit de suas alterações, envie-as para o GitHub, atualize suas notificações / alertas e elas terão sumido!fonte
Se você tiver o npm @ 6 ou posterior, poderá usar
npm audit fix
para solucionar seus problemas de segurança.fonte
Usar:
O npm instalará a versão mais recente do hoek e seu package.lock.json será atualizado.
fonte
Edite
package-lock.json
manualmente e atualize a versão do pacote vulnerável para a corrigida e, em seguida, useIsso instalará os pacotes de acordo com
package-lock.json
, ignorandopackage.json
primeiro. Então usenovamente, para ter certeza de que foi feito corretamente. Se não ajudar, use outras soluções fornecidas.
Mais informações aqui:
https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable
ou aqui: https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
fonte
npm audit fix
ou não é uma opção .Para verificar os pacotes npm vulneráveis, basta usar os seguintes comandos:
Para consertar pacotes npm vulneráveis, basta usar os seguintes comandos que também consertarão o package-lock.json:
fonte
Eu tive esse problema e descobri que era porque o servidor no qual eu estava executando o npm tinha uma versão antiga do npm nele - o pacote-lock.json é compatível apenas com as versões mais recentes.
fonte
você tentou isto: vá para a raiz do seu projeto, exclua o
package-lock.json
arquivonode_modules
e as.cache
pastas, e entãonpm install
.fonte
Depois de instalar novas dependências, execute o seguinte comando para atualizar o arquivo package-lock.json:
fonte