Dlaczego warto korzystać z Bower? [Zamknięte]

32

W pełni doceniam zalety menedżera pakietów, takiego jak Python pip, Node npmlub Ruby Gems, ponieważ robią one znacznie więcej niż dodawanie plików do ścieżki aplikacji.

Może brakuje mi sensu lub jestem tępy, ale oto niektóre negatywy , które widzę:

  • Oddzielny krok podczas budowania projektu
  • Oddzielna zależność do zainstalowania za pomocą innego menedżera pakietów (yo dawg)
  • Więcej bałaganu w projektach rootowanych za pomocą bower.jsoni / lub.bowerrc
  • Polegaj na tym, że rejestr jest aktualny, poprawny i dostępny
  • Niektóre importy / odniesienia do rzeczy takich jak obrazy nie będą działać
  • Ogromne nakładanie się na npm i często nie jest jasne, którego zasobu użyć, kiedy

Do pozytywów widzę są takie:

  • Nie muszę ręcznie pobierać zależności
  • Opcjonalnie zainstaluj pakiety jako część rusztowania na podstawie podpowiedzi użytkownika lub podobnych

Naprawdę chciałbym wiedzieć o jakichkolwiek korzyściach, których nie jestem świadomy, i powinienem powiedzieć, że nie próbuję być prowokujący, którego naprawdę chcę wiedzieć.

Wil
źródło
1
Powiązane: programmers.stackexchange.com/q/174959/34183
Mike Partridge
Ostatecznie wszystkie wymienione przez Ciebie menedżery pakietów obejmują zależności pobierania i mają te same „negatywne” cechy, które wymieniłeś dla Bower. Podobnie, Bower dzieli niektóre korzyści z npm, pip i rubygemów: na przykład Bower ułatwia aktualizację zależności do najnowszej wersji (jest to duża) i znacznie zmniejsza bałagan w repozytorium git, ponieważ ty nie trzeba wpisywać kodu zależności.
sffc
6
Szkoda, że ​​to pytanie zostało zamknięte, ponieważ „opiera się głównie na opiniach”. PO prosi o opinię ekspertów. „W jaki sposób pomaga mi to w procesie rozwoju?”
Dave Kanter,
Wygląda na to, że trendem jest, że nie powinieneś używać altany, nie ma żadnych narzędzi ani zalet w porównaniu z używaniem npm w połączeniu z Browserify. Wygląda na to, że branża się wypowiedziała, a liczba modułów dla altany maleje, a npm i Browserify stają się standardem: quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Odpowiedzi:

12

Z pliku README :

Bower to menedżer pakietów dla Internetu. Oferuje ogólne, nieopublikowane rozwiązanie problemu zarządzania pakietami frontonu, ujawniając jednocześnie model zależności pakietu za pośrednictwem interfejsu API, który może być wykorzystany przez bardziej opiniotwórczy stos kompilacji. Nie ma zależności systemowych, żadne zależności nie są współużytkowane przez różne aplikacje, a drzewo zależności jest płaskie.

Bower przejeżdża przez Git i jest niezależny od pakietów. Zapakowany komponent może składać się z dowolnego rodzaju zasobu i wykorzystywać dowolny rodzaj transportu (np. AMD, CommonJS itp.).

Bower ma wiele zalet innych menedżerów zależności. Jestem pewien, że istnieją inne, ale korzyści, które do tej pory zauważyłem, obejmują:

  • Uprość tak zwane deklaratywne zarządzanie zależnościami; tzn. deklarujesz swoje zależności w bower.json, aby inne rzeczy mogły je łatwo określić
  • Nie ma potrzeby zatwierdzania zależności do kontroli wersji
  • Wersje semantyczne służą do zdefiniowania zakresu akceptowalnych wersji dla zależności, co ułatwia aktualizację do nowszych wersji w zdefiniowanym zakresie
  • Nie ma potrzeby lokalizowania różnych kompilacji (debugowania, zmniejszania itp.)
  • Prosty w użyciu różne wersje zależności dla deweloperów vs. prod
  • Możesz dystrybuować plik bower.json i każdy może przyśpieszyć dzięki prostej „instalacji bower”
Mike Partridge
źródło
2
Zdecydowanie chciałbym napisać pytanie w mniej prowokujący sposób. Naprawdę myślę, że najważniejszą korzyścią, którą przegapiłem, jest używanie interfejsu API jako części procesu kompilacji / rusztowania. Chciałbym zobaczyć gdzieś na wolności.
Wil
Dowiedziałem się o Bower, kiedy uruchomiłem aplikację Angular za pomocą generatora Angular dla Yeomana. Wypróbowanie tego może dać ci wyobrażenie o tym, jak można z niego korzystać.
Mike Partridge
Wcześniej korzystałem z Yeoman i Grunt Init i być może po prostu moje potrzeby zawsze oznaczały, że komponenty frontonu nigdy nie będą się różnić - zawsze będą to Angular, jQuery, Mocha itp., Ale widzę, że jeśli użytkownik chce zamień środowisko testowe z listy wyboru linii ładującej, co byłoby przydatne. Myślę, że główną zaletą, która ma sens, są opcje i modyfikatory bootstrap. Myślisz, że to sprawiedliwe?
Wil
2
Również przenośność. Możesz dystrybuować plik bower.json i każdy może przyśpieszyć dzięki prostej „instalacji bower”.
Dave Kanter,
1
s/bower/npm/ii ta odpowiedź jest nadal w 100% prawdziwa.
Qix,