Mam pytanie dotyczące najlepszych praktyk w zarządzaniu zależnościami zagnieżdżonymi npm.Zarządzanie zależnościami zagnieżdżonymi npm
Pozwolę sobie wyjaśnić moją sytuację i proszę powiedzieć, co robię źle, lub jaki jest najlepszy sposób podejścia do tego.
Używam aplikacji używającej express.js i express-mongostore w nodeenv. Z powodu nodeenv mam globalnie wszystko, więc wszyscy przechodzą pod folder nenv/lib/node_modules. Chodzi o to, próbuję rozwinąć bleeding edge express.js, podczas gdy express-mongostore nie było od jakiegoś czasu aktualizowane. Po zainstalowaniu obu modułów otrzymuję tę strukturę folderów.
nodeenv/lib/node_modules/express/node_modules/connect/..
/
/connect-mongodb/node_modules/ connect/...
To, co się dzieje, to to, że mam 2 różne wersje połączenia.
Spaliłem się, ponieważ pliki cookie wygenerowane przez sklep mongodb i plik wygenerowany przez oprogramowanie pośredniczące sesji są inne, ponieważ wskazują na 2 różne implementacje connect utils (jeden nazywa się sklepem, który wywołuje utils, a inne wywołują polecenia bezpośrednio. , wskazują różne pliki podczas wymaganego rozwiązania). W rzeczywistości różnica polega na tym, że podpisują plik cookie za pomocą różnych algorytmów. Przez pewien czas moje sesje unieważniały każde ładowanie strony i zajęło mi sporo czasu debugowanie na tym poziomie.
Czytałem na Internetach i wygląda na to, że ma to być npm i dobra rzecz. Problem polega na tym, że ponieważ express polega na grupie utils w connect i connect-mongodb dziedziczy niektóre z tych samych klas w connect, posiadanie różnych repo jest problematyczne.
Obecnie nadal mam 2 wersje connect i naprawiłem jeden, aby był taki jak drugi. Jest oczywiste, że nie jest to trwałe rozwiązanie. Jak powinienem postępować i podejść do zarządzania zależnościami w tym przypadku?
Z góry dziękuję!