Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

--save-dev e --save

Até o momento, não entendi muito bem a diferença entre instalar pacotes npm com --save-dev e --save ou sem especificar.

Entendi que quando uso o --save-dev, ele salva como devDependencies e quando não uso nada ou uso só o --save, ele salva como dependencies apenas. Parece ser algo como dependência de desenvolvimento e dependência de projetos respectivamente, mas qual é o efeito que isto causa ao projeto? Tem alguma relação com o build-dev e o build-prod que criamos? Parece que se eu pego um projeto já criado, e executo npm install na pasta do package.json, ele instala todas as dependências, seja devDependencies ou dependencies, por isso não notei nenhuma diferença em usar um ou outro. Alguém poderia deixar mais claro sobre o uso prático?

1 resposta
solução!

Oi, Renato, tudo bem?

O uso do --save-dev e --save além da diferença que você observou relacionada as dependências adicionadas para cada forma em que é salva a instalação, o --save-devé usado quando desejamos utilizar ferramentas mais específicas, como testes, minificação, etc.

Vamos a um exemplo, caso você deseje utilizar o pacote do styled-components na sua aplicação, você utiliza:

npm i styled-components --save

Nessa caso acima, é usado para salvar o pacote necessário para a execução do aplicativo.

Mas caso dentro da sua aplicação, você deseje utilizar o pacote jasmine para fazer testes, temos que usar o --save-dev, assim:

npm install jasmine-core --save-dev

Já que você utilizará essa ferramenta para fins de desenvolvimento, o --save-dev se faz necessário.

Veja que que o npm sugere que o jasmine seja baixado dessa forma: https://www.npmjs.com/package/jasmine

Aqui explica mais sobre as dependências adicionadas no projeto: https://docs.npmjs.com/files/package.json#dependencies

Espero ter te ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software