Jestem nowy w używaniu npm i altany, budując swoją pierwszą aplikację w emberjs :).
Mam trochę doświadczenia z szynami, więc znam się na plikach służących do wyświetlania zależności (np. Gemfile pakietu)
Pytanie: kiedy chcę dodać pakiet (i sprawdzić zależność do git), gdzie on należy - do package.json
czy do bower.json
?
Z tego, co zbieram,
uruchomione bower install
pobierze pakiet i umieści go w /vendor
katalogu,
uruchomione npm install
pobierze go i umieści w /node_modules
katalogu.
Ta odpowiedź SO mówi, że altana jest przeznaczona do frontonu, a npm do backendu.
Ember-app-kit wydaje się przestrzegać tego rozróżnienia od pierwszego spojrzenia ... Ale instrukcje w pliku chrząstek dotyczące włączania niektórych funkcji dają dwa wyraźne polecenia, więc jestem całkowicie zdezorientowany.
Zgaduję intuicyjnie
npm install --save-dev nazwa-pakietu byłaby równoważna dodaniu nazwy-pakietu do mojego pliku.j.j
bower install - zapisz nazwę-pakietu może być taki sam jak dodanie pakietu do mojego bower.json i uruchomienie instalacji bower ?
Jeśli tak, to kiedy powinienem kiedykolwiek instalować pakiety w taki sposób, bez dodawania ich do pliku zarządzającego zależnościami (oprócz globalnej instalacji narzędzi wiersza poleceń)?
źródło
Odpowiedzi:
Aktualizacja z połowy 2016 r . :
Wszystko zmienia się tak szybko, że jeśli będzie koniec 2017 roku, ta odpowiedź może już nie być aktualna!
Początkujący mogą szybko zgubić się w wyborze narzędzi do budowania i przepływów pracy, ale to, co jest najbardziej aktualne w 2016 r., To wcale nie używanie Bower, Grunt ani Gulp! Za pomocą Webpacka możesz zrobić wszystko bezpośrednio w NPM!
Wynik Google „npm as build tool”: https://medium.com/@dabit3/introduction-to-using-npm-as-a-build-tool-b41076f488b0#.c33e74tsa
Pakiet WWW: https://webpack.github.io/docs/installation.html
Nie zrozum mnie źle, ludzie używają innych przepływów pracy, a ja nadal używam GULP w moim starym projekcie (ale powoli się z niego wychodzę), ale tak właśnie dzieje się w najlepszych firmach, a programiści pracujący w tym przepływie zarabiają DUŻO pieniędzy!
Spójrz na ten szablon to bardzo aktualna konfiguracja składająca się z mieszanki najlepszych i najnowszych technologii: https://github.com/coryhouse/react-slingshot
Twoje pytania:
Wszystko należy teraz do pliku package.json
Zależności wymagane do kompilacji znajdują się w „devDependencies” tj.
npm install require-dir --save-dev
(--Save-dev aktualizuje pakiet.json poprzez dodanie wpisu do devDependencies)npm install lodash --save
(--Save aktualizuje pakiet.json poprzez dodanie wpisu do zależności)Zawsze . Tylko ze względu na wygodę. Po dodaniu flagi (
--save-dev
lub--save
) plik zarządzający deps (package.json) jest aktualizowany automatycznie. Nie marnuj czasu, edytując w nim zależności. Skrót dlanpm install --save-dev package-name
jestnpm i -D package-name
i skrót dlanpm install --save package-name
jestnpm i -S package-name
źródło
With help of Webpack you can do everything directly in NPM!
To nieprawda, nie trzeba nawet paczki internetowej w swoim przepływie pracyNpm i Bower to narzędzia do zarządzania zależnościami. Ale główna różnica między nimi polega na tym, że npm jest używany do instalowania modułów Node js, ale bower js służy do zarządzania komponentami typu front-end, takimi jak html, css, js itp .
Faktem, który sprawia, że jest to bardziej mylące, jest fakt, że npm zapewnia pewne pakiety, które mogą być również używane w programowaniu front-end, takie jak
grunt
ijshint
.Te linie dodają więcej znaczenia
Edycja : Grunt różni się znacznie od Npm i Bower. Grunt to narzędzie do uruchamiania zadań w javascript. Możesz robić wiele rzeczy za pomocą chrząkania, które w przeciwnym razie musiałeś zrobić ręcznie. Podkreślając niektóre zastosowania Grunt:
Istnieją wtyczki grunt do kompilacji sass, ulepszania javascript, kopiowania plików / folderów, minimalizacji javascript itp.
Uwaga: wtyczka grunt jest również pakietem npm.
Pytanie 1
To zależy, do czego należy ten pakiet. Jeśli jest to moduł węzła (jak chrząknięcie, żądanie), to w pakiecie.json przejdzie do bower json.
Pytanie 2
Nie ma znaczenia, czy instalujesz pakiety jawnie, czy wspominasz o zależności w pliku .json. Załóżmy, że jesteś w trakcie pracy nad projektem węzła i potrzebujesz innego projektu, powiedzmy
request
, wtedy masz dwie opcje:LUB
npm install --save request
--save
opcje dodaje również zależność do pliku package.json. Jeśli nie określisz--save
opcji, pobierze tylko pakiet, ale plik json pozostanie niezmieniony.Możesz to zrobić tak czy inaczej, nie będzie istotnej różnicy.
źródło
npm
tylko, w przeciwieństwie do samouczka v1, który korzystał zarówno z npm, jak i altany. Naprawdę bardzo podoba mi się fakt, że (a)package.json
jest jedyną rzeczą do utrzymania, (b) że oblicza rekurencyjnie zależności w jednej linijcenpm install
, i (c) gdy pojawia się problem, wystarczy usunąćnode_modules
folder i uruchomić npm install jeszcze raz.