Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 9038|Resposta: 0

Qual é o package-lock.json gerado pela instalação do npm?

[Copiar link]
Publicado em 13/12/2017 13:17:45 | | |
Para modificação npm node_modules árvore ou qualquer package.json de ação, um package-lock.json será gerado automaticamente. Ele descreve exatamente a árvore que é gerada para que as instalações subsequentes possam gerar a mesma árvore, independentemente das atualizações intermediárias de dependência.

Este arquivo é destinado a ser submetido ao repositório de código-fonte e está disponível para vários fins:

Descreve uma única representação da árvore de dependências para garantir que colegas de equipe, implantações e integração contínua garantam que as mesmas dependências estejam instaladas.

Forneça aos usuários uma ferramenta para "avançar" para um estado node_modules anterior sem precisar comprometer o diretório em si.

Facilitar maior visibilidade das mudanças em árvores por meio de diferenças legíveis no controle de versão.

E otimizar o processo de instalação permitindo que o npm pule a resolução duplicada de metadados dos pacotes previamente instalados.

Um detalhe chave sobre package-lock.json é que não pode ser lançado e será ignorado se for encontrado em qualquer lugar fora do pacote de primeira linha. Ele compartilha o formato com npm-shrinkwrap.json, é basicamente o mesmo arquivo, mas permite publicação. Isso não é recomendado, a menos que você implante uma ferramenta de CLI ou use o processo de lançamento para produzir um pacote de produção.

Se tanto package-lock.json quanto npm-shrinkwrap.json existirem no diretório raiz de um pacote, package-lock.json serão completamente ignorados.

Link original: https://docs.npmjs.com/files/package-lock.json


Desde o lançamento do npm 5.x, o papel do bloqueio 5.6.0 mudou muitas vezes, e agora muitos pequenos textos brancos na Internet estão presos na tradução anterior do documento.

Atualizei do npm3.x para o npm5, mas descobri que o fenômeno ao executar 'npm i' não era consistente com o artigo de divulgação científica na Internet.

É mencionado que, não importa como package.json arquivo seja modificado, se o npm i for executado repetidamente, o npm será baixado de acordo com as informações de versão descritas no arquivo de bloqueio.

Também é mencionado que, ao repetir o npm i, o npm ignora as informações do bloqueio e baixa o módulo de atualização de acordo com as informações de versão semântica do pacote no package.json (o bloqueio parece ser inútil).

**De acordo com as informações, as regras do NPM I mudaram três vezes desde o lançamento do NPM 5.0. **

1. Versão NPM 5.0.x, não importa como o package.json mude, o NPM I será baixado de acordo com o arquivo de bloqueio

package-lock.json arquivo não atualizado após package.json arquivo ser alterado · Edição #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Esse problema reclama desse problema, obviamente troquei o package.json manualmente, por que você não me dá um pacote de upgrade! E então isso leva à questão da 5.1.0...

2. Após a versão 5.1.0, a instalação do npm ignorará o arquivo de bloqueio para baixar a versão mais recente do npm

Então alguém levantou essa questão: por que o bloqueio de pacotes está sendo ignorado? · Edição #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
A reclamação acabou evoluindo para as regras após a versão 5.4.2.

3. Após a versão 5.4.2, por que o bloqueio de pacotes está sendo ignorado? · Edição #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


De forma geral, se o package.json for alterado e o package.json for diferente do arquivo de bloqueio, o npm baixará o pacote mais recente de acordo com o número de versão e o significado semântico do pacote ao executar o 'npm i', e o atualizará para lock.

Se ambos estiverem no mesmo estado, então executar o npm i vai baixar de acordo com o lock, independentemente de a versão real do pacote ser nova ou não.






Anterior:Reporte estatísticas e complemente o método do tempo sem dados
Próximo:Tutorial npm (4): Instalar pacotes npm localmente
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com