Existe uma maneira de instalar todas as dependências npm globalmente (centralmente) para que você não armazene node_modules na pasta do projeto?
Isso está causando problemas, pois o framework que a empresa para a qual trabalho usa é bastante pesado e eu tenho mais de 40 projetos, cada um com sua própria pasta node_modules, empacotada com milhões de arquivos de 1kb.
Isso ocupa uma quantidade surpreendente de espaço precioso em meu SSD e seria muito bom se eu pudesse instalar esses pacotes apenas uma vez, com qualquer package.json de projeto vinculado ao meu repositório local
@alshdavid coisas que você require
são dependências e precisam ser instaladas localmente. módulos globais são para ferramentas de linha de comando não específicas do projeto.
imo, essa não é realmente uma questão de yarn, a menos que yarn forneça uma maneira de criar um link simbólico para módulos globais no diretório local, o que me levou a entender que não funcionaria com o ecossistema npm.
Eu acho que isso seria útil. O problema é que é difícil mudar como as coisas são feitas sem mudar o Node.js, já que o Node.js espera que as coisas sejam feitas de uma maneira particular e os módulos sejam organizados de uma maneira particular. 😞 Também adoraria renomear o diretório de node_modules
para outro nome, pois nem todo mundo usa Node.js.
Existem alguns problemas no GitHub em torno de links simbólicos e hardlinks como uma solução potencial para desempenho e espaço em disco - # 499 cobre hardlinks. Os arquivos ainda ocupariam algum espaço no sistema de arquivos. Acho que um sistema de arquivos Copy-on-Write, como BTRFS ou ZFS, ajudaria com isso também, pois os arquivos não seriam realmente copiados e, em vez disso, apenas apontariam para os arquivos originais no diretório de cache.
https://github.com/rstacruz/pnpm faz exatamente isso. Usa o recurso de nó --preserve-symlinks
.
O mais próximo disso parece # 499, então estou encerrando este em favor disso.
Comentários muito úteis
https://github.com/rstacruz/pnpm faz exatamente isso. Usa o recurso de nó
--preserve-symlinks
.