Criei um pacote que resolve alguns problemas do YARN e NPM: ele armazena o node_modules fora do projeto

Fala galera! Eu estava desenvolvendo os meus projetos, e percebi que meu armazenamento tava indo pro espaço, e aí descobri o motivo: vários projetos = vários gigas de node_modules ocupando espaço. 🤦‍♂️

Lá vai eu ter que entrar em cada projeto e apagar cada pasta node_modules que tem em cada projeto, ou rodar um script no terminal. Logo...

Criei um pacote que resolve isso: ele armazena o node_modules fora do projeto e, se você não mexer por mais de 7 dias, ele apaga a pasta de node_modules dos projetos que não estão sendo mexidos. Quando você voltar a rodar o projeto, ele irá avisar para reinstalar tudo rapidinho!

A ultima implementação foi para compilar Typescript sem horas de configurações atoa, tudo um pouco mais fácil!

Ainda tem muita coisa pra melhorar, mas foi feito em algumas horas só, e como aprendizado. 😎

Usem esse pacote, testem, e comentem aqui abaixo, melhorias. Não testei no Windows, testem se possível.

Link: https://www.npmjs.com/package/xsqw

tirando a parte de "limpar" pacotes não usados nos ultimos 7 dias, o PNPM já faz exatamente isso...

Sim, PNPM com certezas é o ideal, com uma grande comunidade de desenvolvedores/colaboradores experientes.

NÃO use o Yarn ou Npm...

Usa o que então? Sugiro mudar o título para algo que descreva melhor o tópico como "XSQW: Como economizar muito espaço em projetos node.js".

Criei um pacote que resolve isso: ele armazena o node_modules fora do projeto

Tive que ir ao projeto para entender como realmente funciona: "Com o xsqw, você pode instalar pacotes em um único diretório e reutilizá-los em diferentes projetos".

A impressão na frase aqui é que você armazenava o node_modules de cada projeto fora do projeto, o que daria no mesmo em relação espaço em disco... Mas reutilizar a mesma pasta node_modules para vários projetos aí sim pode ser interessante para quem não tem espaço em disco.

Minhas pastas node_modules não passam de 500MB, geralmente tenho 10 projetos locais, o que dão ~5GB. Pra mim é suave da forma padrão... Mas sua iniciativa é incrível, fazer algo que atenda a necessidade de qualquer público é sempre sensacional!

sempre pensei que o node_modules deveria ser uma pasta em .local contendo "todas" as libs baixadas lá e vem de uma cópia a cada projeto. E o npm, yarn, pnpm ... ou qualquer gerenciador de pacotes da vez deveria apenas apontar os módulos na pasta global.

Esse parece um projeto que segue essa ideia, então acredito ser interessante dar uma olhada

Eu não sei se seria um problema pra sua ideia, as várias versões de libs, ainda assim teria um repo com REACT: REACT1.1, REACT1.2, REACT1.3... Diminuiria o tamanho ao total mas não reduziria full.
É uma das regras da computação. "Qualquer coisa que exista para reduzir o espaço alocado nunca vai reduzir full. Mas, vai reduzir alguma coisa"
Provavelmente muito mais interessante e com um bom numero de contribuidores com experiencia. PNPM até o momento é o mais razoavel e também com melhor performance conforme o benchmark feito comparado com os principais.

Aliás, fui abrir o seu repo no git pelo link do site do npm, deu 404...

Parabéns pela iniciativa, mas não seria mais fácil apenas instalar bibliotecas (libs) com o parâmetro -g --global? Por ex.: npm install express -g

Segue a documentação relevante

Acho que porque quando um pacote é instalado globalmente ele não é adicionado como dependência do projeto. Apesar que podemos adicionar manualmente no package.json, mas ainda assim tem o problema dos conflitos de versão que podem acontecer ao ter vários projetos...