Sim, você pode ter o node_modules idêntico ao seu local sem precisar commitá-lo no GitHub. Normalmente, o que é recomendado é incluir o arquivo package-lock.json no seu repositório, pois ele registra a versão exata de todas as dependências do seu projeto. Isso permite que outras pessoas possam baixar as mesmas versões das dependências que você usou, sem a necessidade de incluir diretamente a pasta node_modules.
Aqui estão os passos que você pode seguir...
Remover a pasta node_modules do seu repositório:
Certifique-se de que a pasta node_modules foi removida do seu repositório no GitHub. Você pode fazer isso adicionando node_modules ao seu .gitignore se ainda não estiver lá. Isso evita que ele seja incluído nos commits futuros.
Commitar o package-lock.json:
Certifique-se de que o package-lock.json está presente e foi commitado no seu repositório. O package-lock.json contém a versão exata de todas as dependências instaladas no seu ambiente.
Instruir a outra pessoa a instalar as dependências:
Depois que a outra pessoa clonar o repositório, ela precisa instalar as dependências. Ela pode fazer isso executando o seguinte comando no terminal, estando na raiz do projeto: npm install
Isso fará com que o npm (ou yarn, se você estiver usando) instale todas as dependências listadas no package-lock.json, garantindo que ela tenha exatamente as mesmas versões que você.
Usar um gerenciador de pacotes:
Se você quer garantir que outras pessoas tenham o mesmo ambiente de desenvolvimento que você, é fundamental o uso de um gerenciador de pacotes como npm ou yarn.
Eles utilizam o package.json e o package-lock.json (ou yarn.lock) para garantir que as versões das dependências sejam consistentes entre diferentes ambientes.
Portanto, o fluxo recomendado é remover node_modules, commitar package-lock.json (ou yarn.lock), e instruir outras pessoas a instalarem as dependências usando npm install (ou yarn).
Isso deve resolver o problema de inconsistências nas dependências entre diferentes máquinas.