Absolutnie możesz współdzielić katalog node_modules między projektami.
Z dokumentacji węzła :
Jeśli identyfikator modułu przekazany do require () nie jest modułem natywnym i nie zaczyna się od „/”, „../” ani „./”, wówczas węzeł zaczyna się w katalogu nadrzędnym bieżącego modułu i dodaje / node_modules i próbuje załadować moduł z tej lokalizacji.
Jeśli nie zostanie tam znaleziony, przechodzi do katalogu nadrzędnego i tak dalej, aż zostanie osiągnięty katalog główny systemu plików.
Na przykład, jeśli plik w „/home/ry/projects/foo.js” nazywa się require („bar.js”), wówczas węzeł będzie wyglądał w następujących lokalizacjach, w następującej kolejności:
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
Więc po prostu umieść folder node_modules w katalogu swoich projektów i umieść w nim dowolne moduły. Po prostu wymagaj ich jak zwykle. Gdy węzeł nie znajdzie katalogu node_modules w folderze projektu, automatycznie sprawdzi folder nadrzędny. Więc stwórz swoją strukturę katalogów następującą:
-myProjects
--node_modules
--myproject1
---sub-project
--myproject2
W ten sposób nawet zależności twojego podprojektu mogą korzystać z twojego głównego repozytorium node_modules.
Jedną z wad robienia tego w ten sposób jest to, że będziesz musiał ręcznie zbudować plik package.json (chyba że ktoś zna sposób na zautomatyzowanie tego za pomocą pomruku lub czegoś podobnego). Kiedy instalujesz swoje pakiety i dodajesz --save arg do npm install
polecenia, automatycznie dołącza je do sekcji zależności lub pliku package.json, co jest wygodne.
require
modułu d. W przeciwnym razie nie, nie ma oficjalnego „centralnego”node_modules
folderu do użytku z programemrequire()
.