Pacotes e dependências
Ninguém escreve um app inteiro do zero. Os problemas difíceis e comuns — formatar datas, processar pagamentos, exibir um calendário — já foram resolvidos e empacotados por outras pessoas. Um pacote é um pedaço reutilizável de código que você importa para o seu projeto em vez de escrever você mesmo. As dependências do seu projeto são a lista de pacotes dos quais ele depende.
No mundo do JavaScript, a ferramenta que gerencia isso é o npm (Node Manager, ou Gerenciador de Pacotes do Node). Dois arquivos fazem essa contabilidade:
package.json— a lista legível por humanos do que seu projeto precisa, além dos comandos para executá-lo. Você (ou a IA) edita este arquivo.- o (
package-lock.jsonou similar) — um registro exato, gerado por máquina, de cada pacote e sua versão precisa, para que o app seja construído de forma idêntica na sua máquina, na de um colega e no servidor. Você não edita isso manualmente; deixa a ferramenta gerenciar.
{
"name": "my-app",
"scripts": {
"dev": "next dev",
"build": "next build"
},
"dependencies": {
"next": "16.0.0",
"react": "19.0.0"
}
}
Por que isso importa? Quando a IA diz "vamos adicionar uma biblioteca para isso", ela está editando o package.json e você está confiando no código de outra pessoa — poucas dependências bem conhecidas são mais seguras do que uma pilha de dependências obscuras. E quando um build quebra misteriosamente, uma dependência incompatível é uma suspeita frequente, e "apagar e reinstalar os pacotes" é uma solução real e comum.