Como instalar dependências apenas para desenvolvimento no Node.js?
No desenvolvimento com Node.js, algumas dependências são necessárias apenas para testes, depuração ou ferramentas de build, sem serem utilizadas em produção. Para isso, usamos dependências de desenvolvimento.
Instalando dependências de desenvolvimento com npm
Para instalar um pacote apenas para desenvolvimento, utilize a flag --save-dev
:
npm install nome-do-pacote --save-dev
Exemplo:
npm install nodemon --save-dev
Isso adicionará nodemon
apenas à lista de dependências de desenvolvimento.
Instalando dependências de desenvolvimento com yarn
Se estiver usando o yarn, a sintaxe é:
yarn add nome-do-pacote --dev
Exemplo:
yarn add jest --dev
Onde as dependências de desenvolvimento ficam registradas?
Essas dependências são armazenadas no package.json
na seção devDependencies
:
{
"devDependencies": {
"nodemon": "^2.0.22",
"jest": "^29.0.3"
}
}
Instalando apenas dependências de produção
Ao instalar pacotes, o npm normalmente instala todas as dependências, incluindo as de desenvolvimento. Mas ao fazer o deploy de um projeto, podemos instalar apenas as dependências essenciais com:
npm install --production
Isso ignora os pacotes listados em devDependencies
.
Removendo uma dependência de desenvolvimento
Se precisar remover um pacote instalado como devDependency
, use:
npm uninstall nome-do-pacote
Exemplo:
npm uninstall nodemon
Conclusão
As dependências de desenvolvimento ajudam a manter o ambiente organizado, garantindo que pacotes como Jest, ESLint, Webpack e Nodemon sejam instalados apenas quando necessário. Isso mantém o projeto leve e otimizado para produção.
Por que separar dependências de desenvolvimento e produção no Node.js?
Ao desenvolver aplicações Node.js, diferenciar dependências de produção e de desenvolvimento é essencial. Pacotes como Jest para testes, Nodemon para reiniciar servidores automaticamente e ESLint para análise de código são úteis durante a programação, mas não devem ser incluídos no ambiente de produção.
Frameworks como Next.js e NestJS já trazem configurações para gerenciar dependências de forma eficiente, garantindo que apenas os pacotes necessários sejam incluídos no ambiente correto. Entender essa separação ajuda a evitar sobrecarga e reduzir falhas em servidores produtivos.
Algumas aplicações:
- Testes automatizados com Jest
- Uso de ferramentas de linting como ESLint
- Hot reload com Nodemon
- Compilação de código com Webpack
- Minimização de dependências no ambiente de produção
Dicas para quem está começando
- Use
--save-dev
para instalar pacotes apenas no ambiente de desenvolvimento. - Para produção, utilize
npm install --production
e evite dependências desnecessárias. - Verifique sempre a seção
devDependencies
nopackage.json
. - Remova pacotes desnecessários para manter o projeto leve.
- Se usar yarn, prefira
--dev
para adicionar dependências de desenvolvimento.
Contribuições de Henrique Almeida