2013-04-19 11 views
15

Tak więc, aby przedłożyć moje pytanie, pochodzę z perspektywy programisty back-end Java, gdzie używamy Mavena do budowania. Pracowałem nad testowaniem ostatnio opracowanego projektu Node po stronie serwera, ale teraz przechodzę do konfigurowania testów na naszym frontowym kliencie JavaScript. Nie jestem zbyt dobrze zorientowany w rozwoju front-end i to jest naprawdę moje pierwsze na to pytanie.Jak Bower i NPM łączą się razem?

Wszystko, co jest powiedziane, myślę, że zamierzam użyć następującego zestawu technologii do naszych testów front-end: Eclipse IDE, proces budowania Mavena, framework testowy Mocha, framework asercji Chai, szydercza struktura HTTP Nock, Szpiegowanie/kryminał Sinona, struktura wtrysku zależna od programu Rewire. To wszystko powinno być w porządku, a ponieważ jest to stos, którego używamy do naszego projektu Node, chciałbym, aby konfiguracja frontonu była jak najbardziej podobna.

To jest, więc moja wiedza się psuje. Nie mogę zrozumieć różnic w zarządzaniu zależnościami między naszym projektem węzła a naszym frontowym projektem JavaScript. Nie rozumiem, dlaczego nie będę dalej używać NPM, zintegrowanego z naszą kompilacją Mavena, do zarządzania zależnościami i instalacjami.

Widzę wielu ludzi popierających Bower, ale po obejrzeniu ich strony i dokumentów, nadal nie widzę, jaką niszę wypełnia, aby NPM nie. Widzę wiele stanowczego odrzucenia NPM, o ile chodzi o zarządzanie zależnościami przeglądarki; głównym powodem jest to, że NPM jest zaprojektowany dla projektów Node po stronie serwera, a nie dla przestrzeni front-end. Ale kogo to obchodzi? Niezależnie od intencji początkowego projektu, jeśli robi to, czego potrzebuję, to gdzie jest wadą?

Proszę podejść do tego "pytania", jakbym był kompletnym nowicjuszem. Uświadomiłem sobie, jak przeszedłem przez ten proces i badania, że ​​mam bardzo duże niedobory wiedzy na temat front-endowej strony rzeczy. Mając to na uwadze, proszę, bądź jak najbardziej konkretny i dokładny w swoich odpowiedziach. Byłbym szczęśliwy mogąc udostępnić konfigurację projektu i takie, w razie potrzeby, w celu pomalowania obrazu przestrzeni, w której się znajduję. Dziękuję za wszelkie opinie!

Odpowiedz

15

Bower i NPM do działają inaczej.

NPM jest bardzo potężny i świetnie sprawdza się w tym, co robi. Jednak nie znajdziesz tam wielu pakietów po stronie klienta; większość z nich jest tam, ponieważ działają również w węźle. (Na przykład Underscore.JS i silnik szablonu JADE.)

Dlatego masz Bower, który ma większość pakietów po stronie klienta. Ma wiele wtyczek jQuery, silniki szablonów, frameworki CSS itp. Nie spodziewaj się znaleźć takich pakietów w NPM.

Możesz pracować dobrze z obiema. Tak robię. :)

+0

czy mogę umieścić wszystkie moduły w tym samym folderze "node_modules"? jakie są z tym problemy? http://stackoverflow.com/questions/18012291/what-is-the-best-way-tools-to-organize-javascript-code-that-runs-on-client-and-o –

+3

Nie powinieneś, ponieważ pakiet nazwy (npm) mogą kolidować z nazwami komponentów (bower), np. "jquery", co może spowodować jedną z nich i spowodować problemy. –

+0

wszelkie wskazówki, jak zrobić NPM i Bower dobrze wychowanych mieszkańców tego samego projektu! –

Powiązane problemy