Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

--save x --save-dev

Li que o --save-dev é usado quando instalamos dependências que não são necessárias para rodar a aplicação, como testes. Por que no caso do sass usamos --save-dev?

Qual seria a diferença de usarmos npm install sass, npm install --save sass e npm install --save-dev sass?

Abraços!

2 respostas
solução!

Fala, Caio! Tudo jóia?

Ótima pergunta! É comum surgirem essas dúvidas ao se trabalhar com o Node Js. Mas vamos lá!

Digamos que você tenha um módulo que precisa usar em sua aplicação, e que este módulo seja necessário para a aplicação rodar em produção. Neste caso, é recomendado que você faça a instalação utilizando a flag --save.

npm install --save modulo-necessario-em-producao

Isso instala esse módulo como uma dependência (dependencies), dentro do seu arquivo package.json.

Agora, se você tem um módulo que você não precisa dele em produção, aí você deve usar a flag --save-dev.

npm install --save-dev modulo--nao-necessario-em-producao

E neste caso, esse módulo será instalado nas dependências de desenvolvedor, as devDependencies dentro do seu arquivo package.json.

A questão é que essa forma de utilização é apenas uma das maneiras de facilitar seu trabalho, pois ao precisar reinstalar novamente esses módulos você não precisa utilizar novamente o comando de instalação deixando explícito o nome deles. Você ou outra pessoa que irá utilizar seu projeto pode usar simplesmente npm install ou npm i, e o npm irá buscar os módulos dentro do seu package.json e instalá-lo.

Você pode está se perguntando se o Sass não deveria ser um módulo necessário em produção, já que ele adiciona os estilos das páginas. Mas na prática, como ele é um pré-processador css, as pessoas desenvolvedoras costumam instalar como dependência de desenvolvimento mesmo.

Ah, e em relação a utilizar o npm install nome-do-modulo é bem parecido com o --save.

Em resumo:

Você deve utilizar o --save somente para instalar módulos que serão usados em produção, e o --save-dev somente para módulos que serão usados no momento do desenvolvimento.

Grande abraço!

Muito bom, meu caro! Obrigado pela resposta rápida =D