npm ci vs npm install em CI: Qual Usar
Em CI você quase sempre quer npm ci, não npm install - eis o porquê.
Eles parecem semelhantes, mas se comportam de forma diferente em relação ao lockfile e à reprodutibilidade.
| npm install | npm ci | |
|---|---|---|
| Usa lockfile | Pode atualizá-lo | Instala exatamente a partir dele |
| node_modules | Reaproveita/corrige | Apaga e reinstala do zero |
| Reproduzível | Não | Sim |
| Falha em divergência do lockfile | Não | Sim (por design) |
Use npm ci em CI
npm ci oferece instalações limpas e reproduzíveis e falha de forma explícita se package.json e o lockfile divergirem - que é exatamente o que você quer em um pipeline. npm install é para desenvolvimento local, onde você pretende alterar dependências.
O veredito
CI: sempre npm ci (com o lockfile commitado). Mudanças de dependências locais: npm install.