Compreendendo a diferença entre package.json e package-lock.json
O que é package.json? O arquivo package.json é o arquivo manifesto do seu projeto Node.js Project.it: Metadados sobre o seu projeto (nome, versão, descrição, autor, etc.) scripts que você pode executar (como dependências iniciantes, construídas, testes) e dependências e devadores, listados com as faixas de versão (^, ~, etc.). Este arquivo é criado manualmente (via NP. O que é package-lock.json? O arquivo package-lock.json é gerado automaticamente quando você executa o npm install.it: bloqueia as versões exatas de todas as dependências e sub-dependência garante instalações consistentes em diferentes máquinas e ambientes torna a instalação mais rápida ao pular a resolução de versão (já é definida (já é definida) o pacote de locks. NPM (gerado automaticamente na instalação) Versão de versão Bandas permitidas (^, ~) versões exatas de todas as dependências editáveis humanos? Sim Não (não deve ser editada manualmente) Consistência não garantida As mesmas versões em todos os lugares instalam a velocidade mais lentamente (precisa resolver versões) mais rapidamente (usa versões já resolvidas) se compromete com o GIT? Sim (obrigatório) Sim (altamente recomendado) por que os dois arquivos são importantes package.json fornece flexibilidade: permite atualizações para versões mais recentes de dependências menores/patches. O Package-lock.json garante a estabilidade: todo desenvolvedor e ambiente de produção instala exatamente as mesmas versões, evitando problemas de “funciona na minha máquina”.
Fonte