Tengo una pregunta sobre las mejores prácticas en la administración de dependencias anidadas npm.npm gestión de dependencias anidadas
Déjenme explicar mi situación, y por favor díganme qué estoy haciendo mal, o cuál es la mejor manera de abordar esto.
Estoy ejecutando una aplicación usando express.js y express-mongostore en un nodeenv. Debido a nodeenv, estoy npm-ing todo de manera global, por lo que todos van bajo la carpeta nenv/lib/node_modules. La cuestión es que estoy tratando de desarrollar el sangrado edge express.js, mientras que express-mongostore no se ha actualizado desde hace tiempo. Después de instalar ambos módulos, obtengo esta estructura de carpetas.
nodeenv/lib/node_modules/express/node_modules/connect/..
/
/connect-mongodb/node_modules/ connect/...
Así que lo que termina sucediendo es que tengo 2 versiones diferentes de conexión.
Me quemé porque la cookie generada por la tienda de mongodb y la generada por el middleware de sesión es diferente porque apuntan a 2 implementaciones de conexión de utilidades diferentes (una llama a la tienda que llama utils y la otra llama a utils directamente. , apuntan a diferentes archivos durante la resolución requerida). La diferencia real aquí es que firman la cookie usando diferentes algoritmos. Por un tiempo, mis sesiones se invalidaron a cada carga de página y me tomó un buen tiempo depurarme hasta este nivel.
Estaba leyendo en Internets y parece que se supone que es el modo npm y algo bueno. El problema aquí es que dado que el sistema exprés se basa en un grupo de utilidades en connect y connect-mongodb hereda algunas de las mismas clases en connect, tenerlas como diferentes repos es problemático.
Actualmente todavía tengo 2 versiones de connect y he parchado una para que sea como la otra. Es obvio que esta no es una solución sostenible. ¿Cómo debo proceder y abordar la gestión de dependencias en este caso?
¡Gracias de antemano!