Só acrescentaria que o npm ci
deve ser utilizado primariamente em processos de automações que incluem: plataformas de testes, integrações contínuas e implantação em ambiente produtivo. Você utiliza nesses ambientes porque você quer evitar problemas na automação. Em ambiente de desenvolvimento ainda é recomendado utilizar o npm install
.
No npm ci
você quer replicar exatamente um ambiente que já está validado com todas as suas dependências e subdependências. Você não quer correr o risco de atualizar alguma dependência na árvore do ESLint e não conseguir gerar a build. Também é por isso que você só deve utilizar o comando npm ci
em ambientes automáticos ou de implantação, você precisa sempre validar as vulnerabilidades e bugs do seu código em ambiente de desenvolvimento.