Qual é a opção --save para a instalação do npm?

2038

Eu vi algum tutorial onde estava o comando:

npm install --save

O que significa a --saveopção?

Não foi possível encontrar a resposta no Google.

Dmitri
fonte
32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie
7
Você pode usar o atalho -S e -D lá -S é --save e -D is '--save-dev. --save (ou simples -S): o pacote aparecerá em suas dependências. --save-dev (ou simple -D): o pacote aparecerá em suas devDependencies.
Gil Epshtain 28/02
5
@WiredPrairie obrigado, eu estava tentando npm install (--help | -h | -help ..)e nada.
precisa saber é o seguinte
2
thx @Dmitri, tive o mesmo problema. vamos lá NPM acrescentar que a sua página MAN para a sua ferramenta
Erdinc Ay
67
Eu não entendo o raciocínio por trás da decisão de remover apenas uma menção dessa opção dos documentos e da página de ajuda sem também preteri-la, no mínimo, com um aviso na própria ferramenta. Enquanto isso, os novatos são expostos a ele por meio de zilhões de tutoriais. Em seguida, eles tentam descobrir o que ele faz e perdem 20 minutos lendo os documentos para acabar lendo o histórico da npm no stackoverflow. Curiosamente, impedir esse tipo de perda de tempo maciça (se a popularidade da pergunta é alguma indicação) é um dos propósitos da documentação.
Michael Ekoka

Respostas:

2479

Atualização npm 5:

A partir do npm 5.0.0 , os módulos instalados são adicionados como uma dependência por padrão, portanto, a --saveopção não é mais necessária. As outras opções de salvamento ainda existem e estão listadas na documentação para npm install.

Resposta original:

Antes da versão 5, o NPM simplesmente instalava um pacote node_modulespor padrão. Quando você estava tentando instalar dependências para o seu aplicativo / módulo, primeiro precisava instalá-las e depois adicioná-las (junto com o número da versão apropriado) à dependenciesseção do seu package.json.

A --saveopção instruiu o NPM a incluir o pacote dentro da dependenciesseção package.jsonautomaticamente, poupando assim uma etapa adicional.

Além disso, existem opções complementares --save-deve --save-optionalque salvam o pacote em devDependenciese optionalDependencies, respectivamente. Isso é útil ao instalar pacotes somente de desenvolvimento, como a gruntsua biblioteca de testes.

voithos
fonte
141
Sério, isso está documentado em algum lugar? Não consegui encontrá-lo no Google ou na npmajuda.
Christian Ternus
112
Seria bom se a documentação para isso aparecesse quando npm install --helpfosse usada.
Mark Stosberg
11
@jimsmith: A partir do npm 5.0, é o padrão.
voithos
3
A "atualização do npm" no NPM 5 modifica o package.json por padrão?
Igor Okorokov 3/07
6
@voithos Para mim, o NPM 5 atualiza as versões do pacote em package.json. Para evitá-lo, eu preciso executar o 'npm update --no-save'
Igor Okorokov
219

Para adicionar pacote nas dependências:

npm install my_dep --save

ou

npm install my_dep -S

ou

npm i my_dep -S

Para adicionar pacote no devDependencies

npm install my_test_framework --save-dev

ou

npm install my_test_framework -D

ou

npm i my_test_framework -D

package.json insira a descrição da imagem aqui

Joe L.
fonte
30
tenha cuidado ao usar versões de atalho -S -D, pois devem estar em maiúsculas. Eu sempre cometem esse erro e npm não reclamar ou adicioná-la a package.json
Murray Wynne
7
Ele não reclama porque -s(em minúsculas) é a --silentopção e -dé para informações do nível de log, que são atalhos válidos.
tanvi 21/08/19
131

Não fará nada se você não tiver um package.jsonarquivo. Comece executando npm initpara criar um. Em seguida, chama a npm install --saveou npm install --save-devou npm install --save-optionalirá atualizar o package.jsonpara listar as suas dependências.

Nick Retallack
fonte
37
Acabei de descobrir que ele funciona retroativamente (ao que parece). Você pode executar o seu npm install --save-devprimeiro, depois o npm init e o seu package.json serão preenchidos.
Jacob Wang
20

de acordo com o NPM Doc

insira a descrição da imagem aqui

Parece que, ao executar npm install package_name, a dependência do pacote deve ser automaticamente adicionada ao package.json, certo?

ROROROOROROR
fonte
1
Eu acho que --no-save é usar quando quiser funcionalidade de como npm <5
Abhiroj Panwar
Entendo, npm config ls -lmostra que, por padrão, as opções save-xxx são todas falsas, somente save é true.
ROROROOROROR
Parece que o npm não acionará nenhum erro se você colocar uma opção inexistente, como --save-xxxxxx. Apenas o ignora e o comportamento padrão --save-prod será afetado. Talvez --save venha de uma versão antiga do npm.
leon
13

Você também pode usar -S, -Dou -Pque são equivalentes de salvar o pacote para uma dependência aplicativo, uma dependência dev ou dependência prod. Veja mais atalhos do NPM abaixo:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

Esta lista de atalhos pode ser obtida executando o seguinte comando:

$ npm help 7 config
DevWL
fonte
7

A partir do npm 5, é mais favorável usar --save-prod(ou -P) do que --savefazer a mesma coisa, como é afirmado na instalação do npm . Até agora, --saveainda funciona se fornecido.

themefield
fonte
Isso precisa ir ao topo para economizar a todos nós uma leitura desagradável de variações, contradições e sequestros de tópicos. O SO precisa incentivar respostas sucintas com URLs válidos para evitar o CRUD e continuar nosso trabalho. (O Quora possui um ótimo 'Essa resposta é relevante' etc, e eu já sugeri para o SO fazer isso antes) \ n Sugere que o documento oficial do nó não faça menção a opções mais antigas (desativadas) e a maioria das referências aos nós parece estar pré-configurada. -5,0, enviando nossas cabeças para dar uma volta.
killjoy
6

A partir da npm 5, a npm agora será salva por padrão. Caso você queira que o npm funcione da mesma maneira antiga (sem salvamento automático) do que estava funcionando nas versões anteriores, você pode atualizar a opção de configuração para ativar o salvamento automático, conforme abaixo.

npm config set save false

Para obter a configuração atual, você pode executar o seguinte comando:

npm config get save

Fonte: https://blog.pusher.com/what-you-need-know-npm-5/

rajesh kumar
fonte
6

npm install package_x --save

O pacote fornecido (package_x) será salvo em package.json dentro das dependências. se você adicionar

npm install <<package_x>> --save-dev

então ele será salvo dentro de devDependencies .

Nizam Deen
fonte
12
O que sua resposta contribui que outras respostas ainda não abordaram?
Pedro A
@ Pedro A - Minha suspeita é que o cara reescreva o que acabou de ler; então seus amigos lhe dão votos positivos.
IAM_AL_X
3

A maneira mais fácil (e mais impressionante) de adicionar dependências ao seu package.json é fazê-lo na linha de comando, sinalizando o comando npm install com --save ou --save-dev, dependendo de como você deseja use essa dependência.

Rubin bhandari
fonte
3

npm install --saveou npm install --save-devpor que escolhemos 1 opções entre essas duas ao instalar o pacote em nosso projeto.

as coisas estão claras a partir das respostas acima que npm install --saveadicionarão entrada no dependencycampo no pacakage.jsonarquivo e outro em dev-dependency.

Então, surge a pergunta: por que precisamos da entrada do nosso módulo de instalação no arquivo pacakge.json, porque sempre que fazemos o check-in do código gitou entregamos o código a alguém, sempre o fazemos ou o verificamos sem, node-modulesporque é muito grande e também está disponível em lugar comum, para evitar isso, fazemos isso.

então como outra pessoa obterá todos os módulos que são especificamente ou necessários para esse projeto, para respostas, é um from the package.jsonarquivo que possui a entrada de todos os pacotes necessários para executar ou desenvolver esse projeto.

portanto, após obter o we simply need to run the npm installcomando code, ele lerá o arquivo package.json e instalará os pacotes necessários.

Sunny Goel
fonte
2

npm i (nome do pacote) --save

Simplificando, usando o comando acima, não precisamos escrever o nome do pacote no seu arquivo package.json, ele adicionará automaticamente seu nome e dependência com a versão que você precisará no momento em que for produzir ou configurar outra vez.

npm ajuda a instalar

O comando acima ajudará a descobrir mais opções e corrigir def. Mostrado na foto insira a descrição da imagem aqui

Nitin.
fonte