Czy bower_components powinno być gitignored?


157

Czy byłoby dobrą praktyką pozostawienie tylko bower.jsonpliku i gitignore całego bower_componentskatalogu?


Właśnie zauważyłem oficjalną książkę kucharską Symfony, która właściwie odpowiada na to pytanie, cytując „Obecnie prawdopodobnie powinieneś zatwierdzić zasoby pobrane przez Bowera zamiast dodawać katalog do swojego .gitignorepliku”
— Pierre de LESPINAY

Odpowiedzi:


149

Oficjalna strona Bower stwierdził:

UWAGA: Jeśli nie tworzysz pakietu, który ma być używany przez innych (np. Tworzysz aplikację internetową), zawsze powinieneś sprawdzać zainstalowane pakiety w kontroli źródła .

Koniecznie sprawdź link w wycenie, omawia on niektóre zalety i wady. Główną zaletą jest to, że ich sprawdzenie zapewnia, że ​​zależności są zawsze dostępne, o ile jest dostępne repozytorium. Bez względu na to, co stanie się z Bower, GitHubem lub czymkolwiek innym byłoby potrzebne w innym przypadku.


1
Dziękuję za ten interesujący artykuł. Tak więc na razie nadal nie mamy odpowiednika „pliku blokującego” do zamrożenia wersji.
— Pierre de LESPINAY

1
@PierredeLESPINAY Tylko na najwyższym poziomie. Brakuje odpowiednika funkcji powłoki npm.
— passy

3
Mówią to również w swoim poście na blogu „Ostatecznie wybór, czy zaewidencjonować cały katalog / bower_components, należy do Ciebie…”.
— Krishnaraj

3
Powodem ich sprawdzania jest to, że pewnego dnia biblioteka może zniknąć z Internetu lub może nastąpić jej przestój, co z kolei może spowodować awarie kompilacji. Jako użytkownik Mavena / Gradle nigdy nie myślę o sprawdzaniu zależności.
— Krishnaraj

7
Porada na oficjalnej stronie Bower, aby sprawdzić zainstalowane pakiety w kontroli źródła, została usunięta w 2014 roku: github.com/bower/bower.github.io/commit/ ...
— użytkownik

52

.Gitignore plik w nowo wytworzonej Yeoman projektu angularjs ma bower_components (i) wymienione node_modules być ignorowane (jeśli nie wiesz Yeoman jest to bardzo renomowanych narzędzie internetowe rusztowanie dla nowoczesnych webapps, więc to wystarczająco dobre dla mnie!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

9

Jest czas i miejsce na oba podejścia. W przypadku Yeoman warto polegać na bower.json, ponieważ jest to narzędzie w łańcuchu narzędzi i musi żyć i oddychać w ekosystemie altan. W przypadku wdrażalnej aplikacji internetowej ogólnie dobrą praktyką jest zatwierdzanie zależności i utrzymywanie większej kontroli.

Oto dobry artykuł, który mi się podoba, w którym to omówiono.


6

Jeśli używasz Grunt i Node z Bower, sensowne jest umieszczenie bower_components w swoim .gitignore, ponieważ kiedy uruchamiasz grunt serv lub bud build , zajmuje się on zależnościami za Ciebie, jestem pewien, że dlatego w Yeoman dodają go do plik .gitignore


5

Yeoman generator wstępnie wypełnione .gitignore plik bower_components, ale także wstępnie wypełnione innych katalogów Myślę byłyby potrzebne do ostatecznej aplikacji (jak www), więc zrobiłem kilka badań.

Odkryłem, że www / index.html to zminimalizowana wersja pliku app / index.html. Katalog aplikacji i jego zawartość (w tym bower_components) zawiera pliki źródłowe potrzebne do katalogu wyjściowego (www). Zatwierdzasz katalogi źródłowe do kontroli źródła (np. Git), ale nie pliki generowane (np. Www). Menedżery pakietów, takie jak bower i npm, mają być używane podczas fazy kompilacji / generowania, a ich artefakty nie są przeznaczone do sprawdzania w kontroli źródła.

Ostatecznie źródło, które sprawdzasz w git, to absolutna minimalna konfiguracja potrzebna do zbudowania pozostałej części projektu do celów programistycznych lub wdrożeniowych.


0

Dobrze jest zignorować /bower_componentsdir i wpisać tylko bower.jsoni bower-locker.bower.jsonplik, jeśli tworzysz plik blokady za pomocą bower-locker napisanego przez Shawna Lonasa .

Przed utworzeniem altany-lockera istniała wada spowodowana problemem braku możliwości obkurczania altanki , ale można ją złagodzić dzięki powyższej bibliotece.

Uruchom następujące polecenia, aby to osiągnąć:

npm install bower-locker -g

lub

yarn global add bower-locker

następnie wygeneruj plik blokady na podstawie istniejącego bower.jsonpliku, uruchamiając:

bower-locker lock

Oryginalny bower.jsonplik zostanie zmieniony nabower-locker.bower.json

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.