Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] pasta node_modules no github

Fala turminha! Pode ser uma dúvida besta, mas lá vai ☺

Quando vc cria o projeto react pelo npx create-react-app "...", ele cria o projeto, as pastas e etc. E tem uma pasta, a node_modules, que é ENORME! Tem 40 mil arquivos, 5000 sub-pastas, e 343MB. O armazenamento não é problema hoje em dia, com ssd de tera bytes. O problema é subir esse monstro no github!

Segui o projeto certinho, (alias, melhor curso de react que ja fiz até hoje, minucioso, tira duvidas antes delas acontecerem), mas na hora de levar pro gitHub e vercel, essa pasta ficou de fora. Tem ainda a pasta "public" e "src", deu tudo certo, minha duvida é se eu posso deixar ela de fora do projeto, não fazer o upload dela; ou se ela é obrigatória? tem que estar no github?

um abraço

2 respostas

acabei de subir tudo pro github, SEM esta pasta node_modules, e fiz deploy pro vercel. aparentemente está tudo funcionando no projeto. Mas e aí devs, o que me dizem? é uma boa pratica deixar ela de fora ou não?

se quiserem conferir: https://organo-five-weld.vercel.app/

solução!

Olá, Rafael!

Sua pergunta é muito boa, na verdade, é uma dúvida muito comum entre desenvolvedores, especialmente aqueles que estão começando a trabalhar com o Node.js e o React.

A pasta node_modules é onde o Node.js armazena todas as dependências do seu projeto. Ela é gerada automaticamente quando você executa o comando "npm install" ou "yarn", com base nas informações do arquivo package.json do seu projeto.

A boa notícia é que você não precisa, e na verdade não deveria, incluir a pasta node_modules no seu repositório do GitHub. Isso porque todas as informações necessárias para recriar essa pasta estão no arquivo package.json. Quando alguém clona seu repositório e executa "npm install" ou "yarn", o Node.js lê o arquivo package.json e baixa todas as dependências listadas nele, recriando a pasta node_modules novamente.

Observe que na sua pasta existe um arquivo chamado .gitignore que contém o nome da pasta a ser ignorada ou demais arquivos a serem ignorados, no caso a pasta nodemodules. Isso faz com que a pasta seja excluída quando o projeto é enviado para o git, o arquivo gitignore ele serve para ignorar alguns arquivos e não entre no commit/push para o repositório. "Mas isso é bom ou ruim?" Como você disse, a pasta é bem pesada, por isso não vale a pena levar todo esse "peso" para o GitHub. Imagine que nós dois temos máquinas que processam determinado produto. Então, já que eu tenho o maquinário para processar esse produto, eu quero apenas o produto. O seu maquinário não é interessante, já que eu tenho o meu o mesmo faz o mesmo que o seu. E, tratando-se de hospedagem, seria um peso desnecessário.

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software