Você absolutamente pode compartilhar um diretório node_modules entre projetos.
Da documentação do nó :
Se o identificador do módulo passado para require () não for um módulo nativo e não começar com '/', '../' ou './', então o nó começa no diretório pai do módulo atual e adiciona / node_modules e tenta carregar o módulo a partir desse local.
Se não for encontrado lá, ele será movido para o diretório pai e assim por diante, até que a raiz do sistema de arquivos seja alcançada.
Por exemplo, se o arquivo em '/home/ry/projects/foo.js' chamado de require ('bar.js'), o nó olharia nos seguintes locais, nesta ordem:
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
Portanto, basta colocar uma pasta node_modules dentro do diretório de seus projetos e inserir os módulos que desejar. Exija-os normalmente. Quando o node não encontra um diretório node_modules na pasta do seu projeto, ele verifica a pasta pai automaticamente. Portanto, faça sua estrutura de diretório assim:
-myProjects
--node_modules
--myproject1
---sub-project
--myproject2
Assim, mesmo as dependências do seu subprojeto podem se basear no seu repositório node_modules principal.
Uma desvantagem de fazer isso dessa maneira é que você terá que construir seu arquivo package.json manualmente (a menos que alguém saiba uma maneira de automatizar isso com o grunt ou algo assim). Quando você instala seus pacotes e adiciona o argumento --save a um npm install
comando, ele o anexa automaticamente à seção de dependências ou ao seu package.json, o que é conveniente.
require
módulo d. Caso contrário, não, não há umanode_modules
pasta "central" oficial para uso comrequire()
.