Absolutamente puede compartir un directorio node_modules entre proyectos.
De la documentación del nodo :
Si el identificador de módulo pasado a require () no es un módulo nativo y no comienza con '/', '../' o './', el nodo comienza en el directorio principal del módulo actual y agrega / node_modules e intenta cargar el módulo desde esa ubicación.
Si no se encuentra allí, se mueve al directorio principal, y así sucesivamente, hasta que se alcanza la raíz del sistema de archivos.
Por ejemplo, si el archivo en '/home/ry/projects/foo.js' llamado require ('bar.js'), entonces el nodo buscaría en las siguientes ubicaciones, en este orden:
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
Así que simplemente coloque una carpeta node_modules dentro de su directorio de proyectos y coloque los módulos que desee. Solo requiéralos como de costumbre. Cuando el nodo no encuentra un directorio node_modules en la carpeta de su proyecto, verificará la carpeta principal automáticamente. Así que haga su estructura de directorio así:
-myProjects
--node_modules
--myproject1
---sub-project
--myproject2
Así que así, incluso las dependencias de su subproyecto pueden basarse en su repositorio principal node_modules.
Un inconveniente de hacerlo de esta manera es que tendrás que construir tu archivo package.json manualmente (a menos que alguien sepa cómo automatizar esto con gruñido o algo así). Cuando instala sus paquetes y agrega --save arg a un npm installcomando, lo agrega automáticamente a la sección de dependencias o su package.json, lo cual es conveniente.
requiremódulo d. De lo contrario, no, no hay unanode_modulescarpeta "central" oficial para usarrequire().