2013-06-03 12 views
11

Używam Node.js i npm przez kilka tygodni z wielkim sukcesem i zaczęliśmy kwestionować najlepszą praktykę instalowania lokalnych modułów. Rozumiem, Global vs Local argument, ale moje pytanie ma więcej wspólnego z miejscem do instalacji lokalnej. Załóżmy, że mam projekt zlokalizowany pod numerem ~/ProjectA/, który jest kontrolowany i obsługiwany przez wielu programistów. Kiedy początkowo grałem z Node.js i npm, nie wiedziałem o domyślnych lokalnych ścieżkach instalacji i po prostu zainstalowałem niezbędne moduły w domyślnym terminalu, co spowodowało ścieżkę instalacji ~/node_modules. To, co się stało, wymagało, aby wszyscy inni programiści pracujący nad projektem zainstalowali moduły na własnych komputerach w celu uruchomienia aplikacji. Widząc, gdzie niektórzy z programistów pracują pod numerem npm install, wciąż jestem zaskoczony, że w ogóle działał na ich komputerach (prawdopodobnie jest to związane z how Node.js and require() looks for modules), ale nie trzeba dodawać, że zadziałało.Zrozumienie lokalizacji instalacji Nm i Node.js dla modułów

Teraz, gdy projekt przechodzi już przez etap "bawiąc się", chciałbym poprawnie ustawić folder projektu. Tak więc, moje pytanie brzmi, czy moduły powinny być zainstalowane pod numerem ~/ProjectA/node_modules i dlatego powinny być częścią plików projektów kontrolowanych pod względem wersji, czy powinny nadal znajdować się w konkretnej lokalizacji programisty-maszyny ... czy to naprawdę nie ma znaczenia?

Po prostu szukam wskazówek dotyczących "najlepszej praktyki" i tego, co robią inni przy tworzeniu projektów.

+0

Przeczytaj https://npmjs.org/doc/developers.html. Czy twoja aplikacja ma "pakiet.json"? –

Odpowiedz

9

Myślę, że "najlepsza praktyka" polega tutaj na zachowaniu zależności w folderze projektu.
Prawie wszystkie projekty węzłów, które widziałem do tej pory (jestem programistą węzła trwa teraz około 8 miesięcy).

Nie trzeba kontrolować zależności w wersji. W ten sposób udaje mi moje projekty węzła:

  1. zachować wersje zablokowanych w pliku package.json, więc każdy dostaje taką samą wersję roboczą, lub użyć polecenia npm shrinkwrap w katalogu głównym projektu.
  2. Dodaj folder node_modules do VCS ignorować plik (używam git, więc mój jest .gitignore)
  3. Bądź szczęśliwy, gotowe!
+6

Aby upewnić się, że wszyscy mają dokładnie te same wersje zależności, powinieneś użyć 'npm shrinkwrap' https://npmjs.org/doc/shrinkwrap.html –

+0

Dodano do odpowiedzi, dziękuję – gustavohenke

+1

Wygląda na to, że jestem na właściwy tor. Wydaje się logiczne, aby po prostu wykluczyć '' node_modules'' z kontroli wersji, ale nie było jasne, w jaki sposób zarządzam pakietami wszystkich użytkowników. Wygląda na to, że jest to przez plik 'package.json'' lub' 'npm shrinkwrap'' i to był brakujący link. Dzięki za pomoc! – Sanuden

Powiązane problemy