webentwicklung-frage-antwort-db.com.de

Was ist das node_modules-Verzeichnis in AngularJS?

Ich erkunde AngularJS-Tutorial Projekt und fand es hat node_modules Verzeichnis in der Größe, wenn 60 Megabyte.

Braucht ein einfaches clientseitiges Javascript-Projekt wirklich so viele unbekannte Daten?

Ich habe versucht, dieses Verzeichnis zu löschen und das Projekt funktioniert immer noch. Ich vermute, es hängt irgendwie mit node.js Zusammen und es ist npm, aber wie? Angenommen, ich muss mein Projekt auf einem herkömmlichen Webserver (nicht node.js) ausführen. Woher soll ich dann wissen, welche Dateien/Verzeichnisse nicht benötigt werden?

Viele Javascript-Bibliotheken erfordern die Verwendung von Bower, um sie zu installieren. Wenn ich Bower verwende, muss ich dann node_modules Behalten?

21
Dims

Das Verzeichnis node_modules Ist nur für Build-Tools.

Die Datei package.json Im App-Stammverzeichnis definiert, welche Bibliotheken in node_modules Installiert werden, wenn Sie npm install Ausführen.

Sehr oft verwenden Sie mit einer App angular) auf Ihrem Entwicklercomputer oder auf einem Build-Server andere Javascript-Bibliotheken von npm (ein node.js-Paketmanager), um angular app. Aufgaben können das Verketten von Ressourcen, die Verwendung von CSS-Präprozessoren wie LESS oder SASS, das Minimieren, Ersetzen von Werten usw. usw. sein. Die gängigsten Tools zum Verwalten und Ausführen dieser Aufgaben heißen grunt und gulp, die ebenfalls über npm installiert werden.

Wenn Sie Ihre App bereitstellen, verteilen Sie nur den resultierenden Build, keine Quelldateien oder Buildtools.

Es ist natürlich möglich, eine AngularJS-App zu schreiben, ohne etwas zu erstellen.

bearbeiten von Kommentaren: Wenn Sie in Angular more eintauchen, gibt es fortgeschrittenere Techniken für die Verwendung von Bibliotheken, die von npm installiert wurden, auch in der Client-App. Dann wählen Sie selektiv diejenigen aus, die Sie benötigen, nicht die gesamten 50 MB + Ich würde empfehlen, die grundlegenden Ansätze beizubehalten, bis Sie sie gut verstanden haben.

23
vvondra

NPM ist der Knotenpaket-Manager, der Pakete lokal in ein Projekt installiert, insbesondere in den Ordner node_modules. Von dort aus kann der Paketcode can in ein Projekt eingefügt werden, ja, can ist dort das wichtige Wort.

Der Browser kann (noch) keine Module in den Code einbeziehen, daher müssen Sie eine Bibliothek verwenden, die die allgemeinen JS-Stilmodule des Knotens verfügbar macht. Browserify und Webpack sind zwei beliebte Methoden.

Angular erschwert dies durch die Einführung eines eigenen Modulsystems, das AMD-ähnlichen Modulen ähnelt. Es gibt Möglichkeiten, dies zu umgehen, sodass Sie Module im Knotenstil verwenden können. Vielleicht verwendet Ihr Projekt diese.

Die Verwendung von npm zum Verwalten von Abhängigkeiten ist eine großartige Idee, es ist ein fantastischer Paketmanager. In Ihrem Fall ist es jedoch wahrscheinlich, dass das Projekt nur mit node erstellt wird und der Ordner node_modules Abhängigkeiten enthält, die nur mit dem Build zusammenhängen.

2
Matt Styles