2015-12-30 12 views
11

Eksploruję projekt AngularJS tutorial i znalazłem w nim katalog node_modules, którego rozmiar wynosi 60 megabajtów.Co to jest katalog node_modules w AngularJS?

Czy prosty projekt javascript dla klienta naprawdę potrzebuje tak ogromnego korpusu nieznanych danych?

Próbowałem usunąć ten katalog, a projekt nadal działa. Podejrzewam, że w jakiś sposób wiąże się z node.js i jest to npm, ale jak? Załóżmy, że muszę uruchomić mój projekt na jakimś konwencjonalnym serwerze sieciowym (nie w węźle node.js), a następnie wiedzieć, które pliki/katalogi są niepotrzebne?

Wiele bibliotek javascript wymaga użycia altany do ich zainstalowania. Jeśli używam altany, czy to znaczy, że muszę zachować node_modules?

Odpowiedz

11

Katalog node_modules jest przeznaczony tylko dla narzędzi do budowania.

Plik package.json w katalogu głównym aplikacji określa, które biblioteki zostaną zainstalowane w node_modules po uruchomieniu npm install.

Bardzo często za pomocą aplikacji kątowej, na komputerze programisty lub na serwerze kompilacji, można użyć innych bibliotek JavaScript z npm (menedżer pakietów node.js) w celu zbudowania aplikacji kątowej. Zadania mogą łączyć zasoby przy użyciu preprocesorów CSS, takich jak LESS lub SASS, minimalizowanie, zastępowanie wartości itp. Najczęściej używane narzędzia do zarządzania i uruchamiania tych zadań są nazywane grunt i gulp, które są instalowane przez npm jako dobrze.

Podczas wdrażania aplikacji dystrybuowane są tylko wynikowa kompilacja, a nie żaden plik źródłowy lub narzędzia do kompilacji.

Oczywiście można napisać aplikację AngularJS bez tworzenia czegokolwiek.

edytuj z komentarzy: Kiedy zanurkujesz bardziej w Angular, istnieją bardziej zaawansowane techniki korzystania z bibliotek instalowanych przez npm nawet w aplikacji klienckiej, to wybiórczo wybierasz te, których potrzebujesz, a nie całe 50MB +. Polecam pozostać przy podstawowych podejściach, dopóki nie zrozumiesz ich.

+0

Tak, możesz.Biorąc pod uwagę kontekst pytania, wydaje się zbyt mylące nurkowanie w tym kierunku. To nie jest coś, co możesz napotkać w przewodniku dla początkujących. – vvondra

+0

Wprowadzanie w błąd nie było celem, dodano komentarz do odpowiedzi. – vvondra

1

NPM to menedżer pakietów węzłów, który instaluje pakiety lokalnie w projekcie, w szczególności w folderze node_modules. Stamtąd kod pakietu można być włączone do projektu, tak, może jest tam ważne słowo.

Przeglądarka nie ma możliwości włączenia modułów w kod (jeszcze), więc musisz użyć biblioteki, która może eksponować moduły wspólne jS węzła. Browserify i Webpack to dwie popularne metody robienia tego.

Angular utrudnia to, wprowadzając własny system modułów, który bardziej przypomina moduły w stylu AMD. Są na to różne sposoby, aby można było używać modułów w stylu węzła, może twój projekt ich używa.

Używanie npm do zarządzania zależnościami to świetny pomysł, to fantastyczny menedżer pakietów. Prawdopodobnie jednak w twoim przypadku projekt jest zbudowany tylko przy użyciu node, a folder node_modules zawiera zależności związane tylko z kompilacją.