O que é Gerenciamento de Dependências e Como Ele Funciona com Bibliotecas Como o React?
Em software, uma dependência é quando um componente ou módulo em uma aplicação depende de outro para funcionar corretamente. Dependências são comuns em aplicações de software porque permitem que desenvolvedores usem funções ou ferramentas pré-construídas criadas por outros.
Se você quiser construir uma aplicação React, será necessário instalar as dependências do React. Sem essas dependências, nenhum do seu código funcionará corretamente e a aplicação exibirá uma lista de erros.
Quando você estiver trabalhando com projetos mais complexos, frequentemente precisará depender de muitas dependências. Se um conjunto de dependências não for bem gerenciado ou definido em um projeto, isso levará ao que é conhecido como dependency hell.
Para gerenciar dependências de software em um projeto, você precisará usar um gerenciador de pacotes. Um gerenciador de pacotes é uma ferramenta usada para instalação, atualizações e remoção de dependências. Muitas linguagens de programação populares como JavaScript, Python, Ruby e Java, todas usam gerenciadores de pacotes.
Em uma lição anterior, você foi brevemente apresentado a um gerenciador de pacotes popular chamado npm.
Para criar um novo projeto React usando Vite e npm você pode executar o seguinte comando:
npm create vite@latest my-react-app -- --template react
Como você se lembra das lições anteriores, isso criará todo o código boilerplate necessário para iniciar uma nova aplicação React. Antes de poder iniciar a aplicação, você precisará instalar as dependências executando npm install ou npm i para abreviar.
Você pode visualizar todas as dependências no arquivo package.json que está localizado no diretório raiz do seu projeto.
O arquivo package.json é um arquivo de configuração chave em projetos que contém metadados sobre seu projeto, incluindo seu nome, versão e dependências. Ele também define scripts, informações de licenciamento e outras configurações que ajudam a gerenciar o projeto e suas dependências.
Quando você instala dependências, uma pasta node_modules será adicionada ao seu projeto.
A pasta node_modules é onde todos os pacotes e bibliotecas necessários para o seu projeto são armazenados. Essa pasta contém o código real das dependências listadas no arquivo package.json, incluindo tanto as dependências diretas do seu projeto quanto quaisquer dependências dessas dependências.
As duas dependências principais necessárias para um projeto React serão os pacotes react e react-dom:
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1"
}
O package.json listará as versões atuais que você está usando para esses pacotes. Se você precisar atualizar algum pacote localmente, pode executar o comando npm update. Ou você pode atualizar todos os pacotes globalmente executando o comando npm update -g.
Além do arquivo package.json, você também terá um arquivo package-lock.json. Este arquivo irá travar as versões exatas de todos os pacotes que seu projeto está usando. Quando você atualiza um pacote, as novas versões também serão atualizadas no arquivo lock.
Outro aspecto importante do arquivo package.json são as dependências de desenvolvimento:
"devDependencies": {
"@eslint/js": "^9.17.0",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.17.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.16",
"globals": "^15.14.0",
"vite": "^6.0.5"
}
Dependências de desenvolvimento são pacotes que são usados apenas para desenvolvimento e não em produção. Um exemplo disso seria uma biblioteca de testes como Jest. Você instalaria Jest como uma dependência de desenvolvimento porque você o usa apenas para testar seu projeto localmente e ele não é necessário para a aplicação rodar em produção.
For the majority of this lesson, we have been focusing on npm. Mas existem outros gerenciadores de pacotes como yarn e pnpm. Então qual gerenciador de pacotes você deve usar para o seu projeto?
Bem, a resposta curta é que depende.
Se você está entrando em um projeto existente com uma equipe, então todas essas decisões serão tomadas para você e você usará o gerenciador de pacotes existente. Se você está construindo um projeto do zero, então você precisará pesquisar os prós e contras de cada gerenciador e decidir qual deles atenderá melhor às suas necessidades.Este módulo não possui perguntas. Marque como concluído.