Was ist der Unterschied zwischen npm install
und npm run build
?
Ich habe in meinem Projekt festgestellt, dass npm manchmal fehlschlägt, wenn npm install
es ausgeführt wird, aber beim Ausführen npm run build
funktioniert es einwandfrei.
Wie unterscheidet sich das Innenleben dieser beiden Ziele nämlich install
und run build
?
node.js
npm
npm-install
BalajiK
quelle
quelle
Antworten:
npm install
Installiert Abhängigkeiten in dasnode_modules/
Verzeichnis für das Knotenprojekt, an dem Sie arbeiten. Sie könneninstall
ein anderes node.js-Projekt (Modul) aufrufen , um es als Abhängigkeit für Ihr Projekt zu installieren.npm run build
ist ein Alias fürnpm build
und tut nichts, es sei denn, Sie geben an, was "build" in Ihrer package.json-Datei tut. Sie können alle erforderlichen Bau- / Vorbereitungsaufgaben für Ihr Projekt ausführen, bevor es in einem anderen Projekt verwendet wird.build
wird vonlink
undinstall
Befehle gemäß der Dokumentation für Build aufgerufen :quelle
npm run build
undnpm build
sind nicht gleich. Ich werde erneut abstimmen, wenn Sie beweisen können, dass sie tatsächlich gleich sind, oder Ihre Antwort korrigieren.npm build
undnpm run build
sind nicht das gleiche. IMHO, vielleicht muss die obige Antwort von @churro korrigiert werden. Bitte korrigieren Sie mich, wenn ich falsch liege. stackoverflow.com/questions/29939697/…NPM im Jahr 2019
npm build
existiert nicht mehr. Sie müssennpm run build
jetzt anrufen . Weitere Infos unten.TLDR;
npm install
: installiert Abhängigkeiten und ruft dann dasinstall
aus dempackage.json
scripts
Feld auf.npm run build
: Führt das Build-Feld vompackage.json
scripts
Feld aus.NPM-Skriptfeld
https://docs.npmjs.com/misc/scripts
Es gibt viele Dinge, die Sie in das
package.json
Feld npm- Skripte einfügen können. Schauen Sie sich den obigen Dokumentationslink über dem Lebenszyklus der Skripte an - die meisten haben Pre- und Post-Hooks, mit denen Sie Skripte vor / nach der Installation, Veröffentlichung, Deinstallation, Test, Start, Stopp, Shrinkwrap und Version ausführen können.Dinge komplizieren
npm install
ist nicht dasselbe wienpm run install
npm install
Installiertpackage.json
Abhängigkeiten und führt dann die auspackage.json
scripts.install
npm run install
nach der Installation von Abhängigkeiten.npm run install
Läuft nur daspackage.json
scripts.install
, es werden keine Abhängigkeiten installiert .npm build
war früher ein gültiger Befehl (war derselbe wienpm run build
), ist es aber nicht mehr; Es ist jetzt ein interner Befehl. Wenn Sie es ausführen, erhalten Sie:npm WARN build npm build called with no arguments. Did you mean to npm run-script build?
Weitere Informationen finden Sie in der Dokumentation: https://docs.npmjs.com/cli/buildquelle
npm build
es nicht mehr existiert. Es wird immer noch in dem Sinne beendet, dass es für npm bekannt / speziell ist, da es mit der Warnung reagiert, die Sie unten erwähnen. Im Wesentlichen macht es jetzt nichts. Diese Antwort auf eine andere Frage gab die kürzeste Zusammenfassung aufnpm build
vsnpm run build
.Ponits zu beachten ::
1) Eine weitere Sache,
npm build
und esnpm run build
gibt zwei verschiedene Dingenpm build
, die von Churro geschrieben werden, abernpm run build
benutzerdefinierte Arbeiten ausführen, die im Inneren geschrieben sindpackage.json
2) Und
npm build
undnpm run build
sind nicht gleich. Ich meine, Sie können im benutzerdefinierten build (npm run build
) -Skript nichts angeben und erwartennpm build
, dass Sie dasselbe tun. Versuchen Sie Folgendes zu überprüfenpackage.json
:und laufen
npm run build
undnpm build
eins nach dem anderen und Sie werden den Unterschied sehen. Weitere Informationen zu Befehlen finden Sie in der npm-Dokumentation .Prost!!
quelle
npm run build
und istnpm build
. Ok, auf welche Weise sind sie nicht gleich? Also ist @ Churros Antwort dann falsch?npm build
bleibt, bleibt ein Rätsel. Wäre schön das zu wissen. Soweit ich das beurteilen kann, ist "npm build
wird tun, was von Churro geschrieben wurde" nicht wahr. Churro sagte, es würde das tun, waspackage.json
für denbuild
Befehl angegeben ist (wie in demscripts
Abschnitt definiert, nehme ich an). Aber genau dasnpm run build
führtnpm build
den inpackage.json
scripts
Abschnitt angegebenen Build-Befehl aus und führt ihn nicht aus . Es sei denn, es gibt eine andere Möglichkeit zu definieren, wasnpm build
in derpackage.json
, die hier nicht erklärt wird, noch von Churro (oder in den NPM-Dokumenten, denke ich, leider) zu tun ist.npm build
gesagt, dass npm WARN buildnpm build
ohne Argumente aufgerufen wird. Wolltest du dasnpm run-script build
? . Ich denke, es hat nichts getan. Nachdem ich Zeit damit verbracht habe, alle Antworten hier zu lesen und es selbst zu versuchen, kann ich immer noch nicht sagen, was der Zweck vonnpm build
:(.npm install
Installiert die Abhängigkeiten in Ihrer package.json-Konfiguration.npm run build
führt das Skript "build" aus und erstellt ein Skript, mit dem Ihre Anwendung ausgeführt wird - sagen wir server.jsnpm start
führt das Skript "start" aus, das dann "node server.js" lautet.Es ist schwierig, genau zu sagen, was das Problem war, aber wenn Sie sich Ihre Skriptkonfiguration ansehen, würde ich vermuten, dass "build" eine Art Build-Tool verwendet, um Ihre Anwendung zu erstellen, während "start" davon ausgeht, dass der Build abgeschlossen wurde, aber dann fehlschlägt, wenn Die Datei ist nicht da.
Sie verwenden wahrscheinlich Bower oder Grunt - ich erinnere mich an eine typische Grunt-Anwendung, die diese Skripte sowie ein "sauberes" Skript zum Löschen des letzten Builds definiert hat.
Build-Tools erstellen in der Regel eine Datei in einem bin /, dist / oder build / -Ordner, die das Startskript dann aufruft - z. B. "node build / server.js". Wenn Sie
npm start
ausfallen, liegt es wahrscheinlich daran, dass Sie angerufen habennpm clean
den neuesten Build oder ähnlich gelöscht haben, sodass Ihre Anwendungsdatei nicht vorhanden ist und der Start von npm fehlschlägt.Der Quellcode von npm build - um auf die Diskussion in dieser Frage einzugehen - ist in Github, damit Sie ihn sich ansehen können, wenn Sie möchten. Wenn Sie
npm build
direkt ausführen und ein "Build" -Skript definiert haben, wird es mit einem Fehler beendet, der Sie auffordert, Ihr Build-Skript als aufzurufennpm run-script build
so dass es nicht dasselbe ist wienpm run script
.Ich bin mir nicht ganz sicher, was das
npm build
bedeutet, aber es scheint mit Nachinstallations- und Paketskripten in Abhängigkeiten zu tun zu haben. Ich gehe davon aus, dass dies möglicherweise sicherstellt, dass alle CLI-Erstellungsskripte oder nativen Bibliotheken, die für Abhängigkeiten erforderlich sind, nach dem Herunterladen des Pakets für die jeweilige Umgebung erstellt werden. Aus diesem Grund rufen Link und Installation dieses Skript auf.quelle