Implementación de la aplicación de nodo con modules NPM autosostenidos

Estoy desarrollando una aplicación muy compleja que utiliza modules NPM de código abierto desarrollados internamente. A menudo necesito cambiar uno de esos modules (funciones adicionales, corrección de errores, etc.) para que la aplicación principal funcione. Por el momento, tengo:

  • Un directory llamado my_modules , cada uno contiene un repository de git para cada module. Por ejemplo module1 , module2 .
  • Un directory llamado my_apps , donde, por ejemplo, hay app1 que tiene module1 como dependencia
  • En my_apps/app1/node_modules tengo module1 y module2 , instalados a través de NPM
  • En el server, implemente tirando del repository de git, ejecute una npm install npm dedupe y npm dedupe , y ejecute el server de forma permanente.

En esta etapa, si tengo que arreglar algo en uno de los modules, I:

  • Solucionarlo dentro de my_apps/app1/node_modules/module1 (no git)
  • Cuando todo esté funcionando, COPIE los files a my_modules/module1 y haga un git push y npm publish
  • El server npm install los últimos modules después de la implementación gracias a la npm install

Esto es mucho, mucho less que ideal. Es demasiado propenso a errores. Sin embargo:

  • Tener un enlace de enlace simbólico my_apps/app1/node_modules/module1 => my_modules/module1 significa que module1 searchá dependencies en su propia ruta, lo que a menudo causa problemas (por ejemplo, necesito asegurarme de que CADA module use la misma copy de module1 , que es imprescindible)

  • Tener un repository git en my_apps/app1/node_modules/module1 parece peligroso, en caso de que accidentalmente sobrescriba los cambios usando NPM en el module. Además, una vez que se haya solucionado el cambio en el repository de git local, aún así tendría que extraer los cambios en my_modules/module1 . Sí, es un paso adelante al copyr files en …

¿Cuál es la forma "recomendada" de lidiar con esto? ¿Alguna mejor práctica?