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,
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!