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!