Excluí por acidente e fiz muitas alterações package.json
desde então. Um npm install
ou npm update
não gera package-lock.json
mais. Tentei limpar meu cache npm e meu cache nvm, mas nada parece estar funcionando. Eu tentei em várias versões do Node.js (6.10.3 Node.js - 3.10.10 npm é o que eu gostaria que funcionasse), e não funciona em nenhum.
Existe uma maneira de forçar o npm a gerar o package-lock.json
arquivo?
node.js
npm
package-lock.json
Muito dinheiro
fonte
fonte
package-lock.json
é gerado automaticamente por padrão no npm a partir da v5, nas versões anteriores, o nome do arquivo de bloqueio eranpm-shrinkwrap.json
e era gerado manualmente usando onpm shrinkwrap
comando.node 8.6.0
e com elenpm 5.3.0
e funcionou..gitignore
. Eu acidentalmente tinhapackage-lock.json
na.gitignore
de alguma forma e, porquepackage-lock.json
não estava aparecendo nogit status
que estava me jogando fora.Respostas:
Por padrão,
package-lock.json
é atualizado sempre que você executanpm install
. No entanto, este pode ser desativado globalmente definindopackage-lock=false
no~/.npmrc
.Quando a
package-lock=false
configuração global está ativa, você ainda pode forçarpackage-lock.json
a atualização de um arquivo de projeto executando:Este comando é a única maneira infalível de forçar uma
package-lock.json
atualização.fonte
package-lock.json
.package-lock.json
só é compatível com npm v5 +.No npm 6.x você pode usar
De acordo com https://docs.npmjs.com/cli/install.html
fonte
npm i --package-lock-only --only=production
não parece funcionar.package-lock.json
apenas para dependências de produção. Mas se você executá-npm i --only=production
lo deve instalar apenas dependências de produção. Portanto, seu processo de compilação pode ser assim: instalar todas as dependências, compilar o aplicativo, removernode_modules
e instalar apenas dependências de produção.Isso é respondido nos comentários;
package-lock.json
é um recurso danpm
v5 e superior.npm shrinkwrap
é como você cria um arquivo de bloqueio em todas as versões donpm
.fonte
package-lock.json
s não são exatamente a mesma coisa que arquivos shrinkwrap.npm-shrinkwrap.json
serão publicados no registro epackage-lock.json
não serão.npm shrinkwrap
geranpm-shrinkwrap.json
, mas como você gerapackage-lock.json
?--package-lock
Como várias respostas explicaram, você deve executar:
npm i
MAS se não resolver ...
Verifique a versão do seu
npm
executável. (Para mim foi 3.xx que não usa opackage-lock.json
(em absoluto))npm -v
Deve ser pelo menos 5.xx (que introduziu o arquivo package-lock.json).
Para atualizar o npm no Lunix, siga estas instruções.
Para mais detalhes sobre os arquivos do pacote, leia esta história média .
fonte
Se a sua versão npm for inferior à versão 5 , instale a versão superior para obter a geração automática de package-lock.json .
Exemplo: atualize seu npm atual para a versão 6.14.0
Você pode ver a lista de versões mais recentes do npm
fonte
package-lock.json é gerado novamente sempre que você executa
npm i
.fonte
node
enpm
. Acho que énpm
> =5.0
enode
> =7.0
, mas não tenho 100% de certeza disso. Não funcionanode 6.11.3
comigo.