Este é o comando npm-shrinkwrap que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS
PROGRAMA:
NOME
npm-shrinkwrap - Bloquear versões de dependência
SINOPSE
embalagem plástica npm
DESCRIÇÃO
Este comando bloqueia as versões das dependências de um pacote para que você possa controlar
exatamente quais versões de cada dependência serão usadas quando seu pacote for instalado. o
package.json arquivo ainda é necessário se você quiser usar npm instalar.
Por padrão, o npm instalar instala recursivamente as dependências do destino (conforme especificado em
package.json), escolhendo a última versão disponível que satisfaça as dependências da
padrão de semver. Em algumas situações, especialmente ao enviar software, onde cada alteração
é rigidamente gerenciado, é desejável especificar totalmente cada versão de cada dependência
recursivamente para que as compilações e implantações subsequentes não selecionem inadvertidamente as mais novas
versões de uma dependência que satisfazem o padrão semver. Especificando semver específico
padrões em cada dependência package.json facilitaria isso, mas nem sempre
possível ou desejável, como quando outro autor possui o pacote npm. Também é possível
verifique as dependências diretamente no controle de origem, mas isso pode ser indesejável para outros
razões.
Como exemplo, considere o pacote A:
{
"nomeia um",
"versão": "0.1.0",
"dependências": {
"B": "<0.1.0"
}
}
pacote B:
{
"nome": "B",
"versão": "0.0.1",
"dependências": {
"C": "<0.1.0"
}
}
e pacote C:
{
"nome": "C",
"versão": "0.0.1"
}
Se essas forem as únicas versões de A, B e C disponíveis no registro, um normal npm
instalar A instalará:
[email protected]
`- [email protected]
`- [email protected]
No entanto, se [email protected] é publicado, então um novo npm instalar A instalará:
[email protected]
`- [email protected]
`- [email protected]
assumindo que a nova versão não modificou as dependências de B. Claro, a nova versão do B
pode incluir uma nova versão de C e qualquer número de novas dependências. Se tais mudanças forem
indesejável, o autor de A poderia especificar uma dependência de [email protected]. No entanto, se o autor de A
e o autor de B não é a mesma pessoa, não há como o autor de A dizer que ele ou
ela não quer obter versões recém-publicadas de C quando B não mudou em nada.
Neste caso, o autor de A pode executar
embalagem plástica npm
Isso gera npm-shrinkwrap.json, que será parecido com isto:
{
"nomeia um",
"versão": "1.1.0",
"dependências": {
"B": {
"versão": "1.0.1",
"de": "B@^1.0.0",
"resolvido": "https://registry.npmjs.org/B/-/B-1.0.1.tgz",
"dependências": {
"C": {
"versão": "1.0.1",
"de": "org / C # v1.0.1",
"resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
}
}
}
}
}
O comando shrinkwrap bloqueou as dependências com base no que está atualmente
instalado em node_modules. O comportamento da instalação é alterado para:
1. A árvore de módulos descrita pelo shrinkwrap é reproduzida. Isso significa reproduzir o
estrutura descrita no arquivo, usando os arquivos específicos referenciados em "resolvido" se
disponível, voltando à resolução normal do pacote usando "versão" se não houver.
2. A árvore é percorrida e todas as dependências ausentes são instaladas da maneira usual.
utilização embrulhado pacotes
Usar um pacote embalado não é diferente de usar qualquer outro pacote: você pode npm
instalar manualmente, ou adicione uma dependência ao seu package.json arquivo e npm instalar .
Building embrulhado pacotes
Para embrulhar um pacote existente:
1. Correr npm instalar na raiz do pacote para instalar as versões atuais de todos
dependências.
2. Valide se o pacote funciona conforme o esperado com essas versões.
3. Correr npm embalar a vácuo, adicionar npm-shrinkwrap.json para fazer git e publicar seu pacote.
Para adicionar ou atualizar uma dependência em um pacote encolhido:
1. Correr npm instalar na raiz do pacote para instalar as versões atuais de todos
dependências.
2. Adicione ou atualize dependências. npm instalar --Salve cada pacote novo ou atualizado
individualmente para atualizar o package.json e o shrinkwrap. Observe que eles devem ser
nomeado explicitamente para ser instalado: running npm instalar sem argumentos vai
apenas reproduz a película retrátil existente.
3. Valide se o pacote funciona conforme o esperado com as novas dependências.
4. Comprometa o novo npm-shrinkwrap.jsone publique seu pacote.
Você pode usar a ajuda do npm desatualizada para visualizar as dependências com versões mais recentes disponíveis.
Outros Notas
Um arquivo shrinkwrap deve ser consistente com o pacote do package.json arquivo. npm embalar a vácuo
irá falhar se as dependências necessárias ainda não estiverem instaladas, uma vez que isso resultaria em um
embalagem plástica que não funcionaria de verdade. Da mesma forma, o comando falhará se houver
pacotes estranhos (não referenciados por package.json), pois isso indicaria que
package.json não está correto.
Como npm embalar a vácuo destina-se a bloquear suas dependências para uso em produção,
DevDependências não será incluído a menos que você defina explicitamente o --dev sinalizar quando você correr
npm embalar a vácuo. Se instalado DevDependências forem excluídos, o npm imprimirá um aviso.
Se você deseja que eles sejam instalados com o seu módulo por padrão, considere adicioná-los
para dependências ao invés.
Se a embalagem retrátil A depende da embalagem retrátil B, a embalagem retrátil de B não será
usado como parte da instalação de A. No entanto, porque o envoltório retrátil de A é construído a partir de
uma instalação válida de B e especifica recursivamente todas as dependências, o conteúdo de B's
A embalagem retrátil será implicitamente incluída na embalagem de A.
Advertências
Se você deseja bloquear os bytes específicos incluídos em um pacote, por exemplo, para ter
100% de confiança em ser capaz de reproduzir uma implantação ou construção, então você deve verificar
suas dependências no controle de origem, ou perseguir algum outro mecanismo que pode verificar
conteúdos em vez de versões.
Use npm-shrinkwrap on-line usando serviços onworks.net