Prezados,
Tudo bem com vocês? espero que sim!
Não entendi o motivo de o CLI do nest ser instalado globalmente, não seria melhor instalar como dependencia de desenvolvimento?
Grato,
Prezados,
Tudo bem com vocês? espero que sim!
Não entendi o motivo de o CLI do nest ser instalado globalmente, não seria melhor instalar como dependencia de desenvolvimento?
Grato,
Olá, Wesley. Como vai?
Essa é uma excelente dúvida técnica e toca em um ponto fundamental sobre a arquitetura de ferramentas no ecossistema Node.js. A escolha entre instalação global ou como dependência de desenvolvimento (devDependencies) depende de como você pretende interagir com o framework.
Vou te explicar os motivos principais para o uso do CLI global e as alternativas modernas que utilizamos hoje:
O papel do CLI Global
O NestJS CLI instalado globalmente (npm install -g @nestjs/cli) funciona como um "gerador de projetos". Ele expõe o comando nest diretamente no seu terminal, permitindo que você crie novos projetos do zero com um simples nest new nome-do-projeto. Como o projeto ainda não existe, você precisa de uma ferramenta externa ao diretório para construí-lo.
Além disso, ele facilita a criação de arquivos seguindo o padrão do framework (Boilerplate). Com o CLI global, você pode usar comandos como:
nest generate module usuariosnest generate controller usuariosPor que instalar como Dependência de Desenvolvimento?
Você está correto em pensar que instalar localmente é uma boa prática. Quando o CLI está nas devDependencies, garantimos que todos os desenvolvedores do projeto usem a mesma versão do NestJS, evitando o famoso problema do "na minha máquina funciona".
A Alternativa Moderna: npx
Atualmente, muitos desenvolvedores preferem não instalar nada globalmente para manter o sistema "limpo". Para isso, utilizamos o npx, que executa pacotes sem a necessidade de instalação permanente:
npx @nestjs/cli new meu-projeto
Uma vez que o projeto foi criado, o NestJS automaticamente adiciona o @nestjs/cli nas suas devDependencies dentro do arquivo package.json. A partir daí, você pode rodar os comandos de geração usando o npx nest generate... ou criando scripts no package.json.
Resumo da Recomendação:
O uso global ensinado no início dos cursos serve para facilitar a primeira barreira de entrada, mas no dia a dia profissional, focar na dependência local é, de fato, uma prática mais resiliente.
Espero que possa ter lhe ajudado!