Poszukujecie odpowiedzi na pytanie, dlaczego nie dodajemy katalogu node_modules
do repozytorium i dlaczego nie push
-ujemy go do origina jakiś przeważnie jest
GitHub? Odpowiedź w dalszej części.
Co to jest node_modules
?
Katalog node_modules
przechowuje wszystkie zainstalowane zależności projektu.
Zawiera również zależności zależności.
W dużych projektach, ten katalog może ważyć dużo megabajtów.
Dlaczego NIE DODAJEMY node_modules
do repozytorium?
- Bo dużo waży - szkoda, pobierać tyle MB podczas klonowania projektu
- Nie chcemy wersjonować czyjegoś kodu - aktualizacja paczek wymusiła by na nas mnóstwo zmian w projekcie
- Kamil Gajowy napisał w swoim komentarz, że biblioteki raz zainstalowane
i przechowywane w
node_modules
na systemie X, mogą nie działać na systemie Y, co może doprowadzić do wielu trudnych do rozwiązania błędów - Podczas tworzenia nowego kodu i jednoczesnego dodawania bibliotek / aktualizowania ich, widzimy w jednej rewizji nasze zmiany, ale także mnóstwo innych, które nic nie wnoszą do sensu aplikacji
…w skrócie:
Nie wrzucamy katalogu node_modules
na GitHuba.
Jak się zabezpieczyć?
Zaraz po stworzeniu projektu, tj. po stworzeniu pliku package.json
,
należy stworzyć plik .gitignore
, w którym wpisujemy katalog node_modules/
.
Wskazówka
Zawsze dodaję slash na końcu linijki z katalogiem, dzięki czemu wiem, że mam do czynienia z katalogiem, a nie z plikiem.
Co zrobić, gdy już dodało się katalog node_modules
do repozytorium?
- Usunąć katalog
node_modules
z dysku komputera, np.rm -rf node_modules
- Dodać plik
.gitignore
w katalogu głównym projektu - Dopisać w tym pliku linijkę
node_modules/
- Stworzyć rewizję (commit), np.
git commit .gitignore -m "Ignore node_modules"
Od teraz możemy śmiało instalować zależności!
Kiedy warto dodać katalog node_modules
do repozytorium?
W swojej historii poznałem dwa przypadki:
- Kiedy chcemy przyspieszyć proces deploymentu i nie pobierać za każdym razem zależności projektu.
- Kiedy proces deploymentu nie posiada dostępu do ściągania danych.
•
Na blogu istnieje artykuł, w którym kiedyś napisałem, dlaczego nie wolno dodawać
katalogu .idea
do repozytorium - warto przeczytać.