As dependências tornam possível a reutilização efetiva do código. Certifique-se de saber como gerenciá-los em seus projetos Node.
Uma dependência é um pedaço de código – uma biblioteca, um módulo ou um pacote – que um projeto requer para funcionar corretamente.
No Node.js, dependências e devDependencies são categorias de pacotes que você pode definir em seu arquivo package.json para gerenciar as dependências do seu projeto. Explore suas diferenças e saiba como usá-los em seus projetos.
Dependências regulares em um projeto npm
Dependências regulares—ou, simplesmente, dependências—são pacotes que seu aplicativo requer para funcionar conforme planejado em tempo de execução e em ambientes de produção.
As dependências podem incluir:
- Bibliotecas externas que oferecem funcionalidade pré-criada, como lodash.
- Frameworks que fornecem uma base ou estrutura para a construção de aplicativos, como Express ou React.
- Drivers de banco de dados, como MongoDB ou sqlite3.
- Pacotes que auxiliam em tarefas relacionadas à rede, como Axios ou Socket.io.
Por exemplo, se você está construindo um API CRUD com Express.js, expressar será uma de suas dependências porque seu servidor precisa dela para funcionar.
Para instalar as dependências de tempo de execução, você pode usar um gerenciador de pacotes como npm, o gerenciador de pacotes de nós, ou Fio.
As dependências existem no objeto de dependências em um arquivo package.json. O objeto de dependências armazena os nomes e as versões dos pacotes.
Para instalar um pacote como dependência usando NPM, execute o comando abaixo:
npm instalar
O comando acima instala o pacote e o registra como dependência do seu projeto em pacote.json:
// pacote.json
"dependências": {
"nome do pacote": "^versão do pacote",
}
Ao clonar um projeto de um repositório baseado na web, você pode instalar as dependências executando o comando abaixo:
npm instalar
Quando você executa o comando acima, seu gerenciador de pacotes lê o pacote.json arquivo e instala as dependências especificadas e devDependencies do registro do pacote.
Dependências de desenvolvimento e como usá-las
Dependências de desenvolvimento — ou devDepenendencies — são pacotes que seu aplicativo precisa apenas durante o processo de desenvolvimento. Em outras palavras, eles não são necessários na produção.
devDependencies pode incluir:
- Estruturas de teste, como Jest ou Mocha.
- Test Runners, como Chai.
- Linters e formatadores, como Eslint.
- Ferramentas de documentação, como Swagger.
Um exemplo comum de um devDepenedency é o pacote Nodemon, que reinicia seu servidor quando detecta alterações em seus scripts.
Você pode definir devDependencies sob o DevDependências objeto em um pacote.json arquivo. Este objeto armazena os nomes e versões dos pacotes.
Você pode instalar um pacote como um devDependency executando este comando:
npm instalar --save-dev
Como alternativa, você pode instalar um pacote como um devDependency executando este comando:
npm install -D
O comando acima instala e registra o pacote em seu pacote.json arquivo, assim:
// pacote.json
"devDependências": {
"nome do pacote": "^versão do pacote"
}
Quando você clona um projeto de um repositório baseado na web, executando o npm instalar O comando também instalará o devDependencies.
No entanto, executar o comando com o Produção flag instala apenas as dependências.
Por exemplo:
npm install --produção
Quando você executa o comando acima, seu gerenciador de pacotes lê o pacote.json arquivo e instala as dependências do seu aplicativo a partir do registro do pacote.
Como alternativa, você pode definir o NODE_ENV variável para “Produção” para obter os mesmos resultados.
Outros tipos de dependências
Além de dependências e devDependencies, Node.js também categoriza pacotes como parDepenências e dependências opcionais.
Dependências de Pares
As dependências de mesmo nível são dependências que um pacote usa quando espera que uma versão específica ou uma versão compatível de outro pacote esteja presente no aplicativo que o utiliza.
O objetivo das dependências de pares é garantir que um pacote funcione corretamente com suas dependências e evite conflitos ou problemas de compatibilidade.
Para versões npm anteriores à v7, as dependências de mesmo nível não são instaladas automaticamente. Em vez disso, o código que inclui o pacote deve incluí-lo como uma dependência. Se o pacote não o incluir, o npm emitirá um aviso.
Eles existem sob o peerDependências objeto no arquivo package.json:
"PeerDependencies": {
"pacote": "^versão"
}
Dependências Opcionais
Dependências opcionais são pacotes que não são essenciais para a funcionalidade principal de um projeto, mas podem aprimorar seus recursos, se disponíveis.
Como as dependências opcionais não são necessárias para que o projeto funcione corretamente, você pode omiti-las durante a instalação.
A execução do comando abaixo ignorará as dependências opcionais durante o processo de instalação:
npm install --omit=opcional
Eles existem sob o dependências opcionais objeto no arquivo package.json:
"Dependências opcionais": {
"pacote": "^versão"
}
As categorias facilitam o gerenciamento de suas dependências
Compreender, gerenciar e categorizar dependências de forma eficaz ajuda a garantir uma separação clara entre os pacotes necessários para produção e aqueles necessários apenas durante o desenvolvimento.
Essa distinção ajuda no gerenciamento eficiente de dependências, agrupamento adequado e implantação simplificada de seu projeto.