2013-10-11 7 views
9

Wenn ich schaffen ein AngularJS Projekt mitWarum ist der Ordner node_modules nicht an Git gebunden?

yo angular 

es ein node_modules/Verzeichnis erstellt setzt aber das Verzeichnis in .gitignore. Als ich das Projekt an anderer Stelle und führen Sie klonen

grunt server 

ich

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt hasn't been installed locally to your project. For more information about installing and configuring grunt, please see the Getting Started guide:

Der Erste Schritte sagt nichts darüber, wie jedoch die fehlende node_modules/Verzeichnis zu handhaben.

Das Verzeichnis node_modules/fehlt absichtlich, weil Yeoman es in .gitignore einfügen.

Was ist der richtige Weg, Yeoman und Grunt in diesem Fall zu verwenden?
Gibt es eine bessere Dokumentation für Yeoman und Grunt?

Danke.

+0

Welche anderen Dinge als node_modules sind in Ihrer .gitignore-Datei aufgeführt? Wird Ihre Gruntfile.js von der Clone-Aktion weitergeleitet? Dies könnte ein zweites Problem nach dem sein, das Marplesoft gelöst hat. –

Antwort

27

Das ist das korrekte Verhalten. Der Inhalt von node_modules ist nicht für die Quellcodeverwaltung vorgesehen. Die Idee hinter npm10 ist, dass es alle erforderlichen Knotenabhängigkeiten in einer Datei namens package.json verfolgt. Diese Datei sollte an die Quellcodeverwaltung übergeben werden. Dann auf einer anderen Maschine, können Sie den Code überprüfen und

npm install

Das sieht in der package.json Datei und Downloads alle benötigten Dateien aus der Cloud laufen und bringt sie alle in ein neues Verzeichnis node_modules.

5

Wenn Sie genug zu dem Thema suchen, werden Sie schließlich über die folgenden article laufen, die besagt, dass wenn Sie eine Anwendung erstellen, sollten Sie Ihre Abhängigkeiten einchecken. Das Vertrauen auf package.json können Probleme verursachen als Modul Autoren Updates veröffentlichen, eine bessere Lösung ist

npm shrinkwrap

, die eine Datei Ihre Abhängigkeiten und Ihre Abhängigkeiten Abhängigkeiten Sperren erstellt verwenden nach unten, aber auch kann diese spröde sein, wie es ist möglich für einen Modulautor, die gleiche Version mit anderem Code erneut zu veröffentlichen.

Da yo angular eine Anwendung erstellt IMHO node_modules sollte nicht in .gitignore enthalten sein, aber wie ich nur grob entdeckt, wenn Sie unter Windows sind, gibt es eine erhebliche Chance, dass Sie die Module in diesem Ordner nicht einchecken können zu Weglängen ... seufzen.

Verwandte Themen