Name
Bis wir das Paket im Repository veröffentlichen, kann das Feld ebenfalls bewertet werden. Die Frage ist, dass dieses Feld bequem zum Benennen der Installationsdatei oder zum Anzeigen des Produktnamens auf seiner Webseite verwendet werden kann. Im Allgemeinen "wie nennt man eine Yacht, .."
Version
Die Hauptidee ist nicht zu vergessen, die Versionsnummer zu erhöhen und gleichzeitig die Funktionalität zu erweitern, Fehler zu beheben, ... Leider finden Sie in unserem Büro immer noch Produkte mit der unveränderten Version 0.0.0. Und dann raten Sie mal, welche Art von Funktionalität für den Client funktioniert ...
Haupt
Dieses
Feld gibt an , welche Datei beim Start unserer Anwendung gestartet wird (`npm start`). Wenn das Paket als Abhängigkeit verwendet wird, welche Datei wird dann importiert, wenn unser Modul von einer anderen Anwendung verwendet wird. Das aktuelle Verzeichnis ist das Verzeichnis, in dem sich die Datei "package.json" befindet.
Wenn wir beispielsweise
vscode verwenden , wird die in diesem Feld angegebene Datei gestartet, wenn der Debugger aufgerufen wird oder wenn der Befehl "execute" ausgeführt wird.
Die Erweiterung ".js" kann weggelassen werden. Es ist eher eine Folge aller möglichen Anwendungsfälle, daher wird es nicht direkt in der Dokumentation dargelegt.
Motoren
Dieses Feld enthält das Tupel: {"node":
version , "npm":
version , ...}.
Ich kenne die Felder "Knoten" und "npm". Sie bestimmen die Versionen von node.js und npm, die für die Funktion unserer Anwendung erforderlich sind. Versionen werden durch Ausführen des Befehls npm install überprüft.
Die Standardsyntax zum Bestimmen von Versionen von Abhängigkeitspaketen wird unterstützt: Ohne Präfix (einzelne Version) müssen das Präfix "~" (die ersten beiden Nummern der Version müssen übereinstimmen) und das Präfix "^" (nur die erste Nummer der Version muss übereinstimmen). Wenn ein Präfix vorhanden ist, muss die Version größer oder gleich der in diesem Feld angegebenen sein. Nur eine Liste von Versionen; explizite Angabe mehr, weniger, ... etc. funktioniert auch.
Haftungsausschluss "Npm install" überprüft die in den "Engines" angegebenen Versionen nur, wenn der "Engine-Strict" -Modus aktiviert ist. Wir fügen es für jedes Projekt hinzu und fügen die .npmrc-Datei mit der Zeile hinzu: "engine-strict = true". Es war einmal, dass "npm install" diese Prüfung standardmäßig durchführte.
Einige Container, zumindest in der Dokumentation, schreiben, dass standardmäßig geeignete Versionen verwendet werden. In diesem Fall handelt es sich um Azure.
Ein Beispiel:
"engines": { "node": "~8.11",
regelmäßiger "Rechen"
Und der König ist nackt!
Mit dem Client wurde wiederholt vereinbart, dass die erforderliche Version von "node.js" mindestens 8 sein sollte. Als die ersten Versionen der Anwendung ausgeliefert wurden, funktionierte alles. "Einen Tag" nach der Lieferung der neuen Version auf dem Client wurde die Anwendung nicht mehr ausgeführt. Bei unseren Tests hat alles funktioniert.
Das Problem war, dass wir in dieser Version Funktionen verwendeten, die nur von Version 8 node.js unterstützt wurden. Das Feld "Engines" war nicht ausgefüllt, sodass niemand zuvor bemerkt hatte, dass der Client eine alte Version von node.js hatte. (Standardeinstellung für Azure-Webdienste).
Skripte
Das Feld enthält ein Tupel der Form: {"script1":
script1 , "script2":
script2 , ...}.
Es gibt Standardskripte, die in einer bestimmten Situation ausgeführt werden. Beispielsweise wird das Skript "install" ausgeführt, nachdem "npm install" ausgeführt wurde. Es ist beispielsweise sehr praktisch, die Verfügbarkeit von Programmen zu überprüfen, die für das Funktionieren der Anwendung erforderlich sind. Oder um beispielsweise alle statischen Dateien zu komprimieren, die über unseren Webdienst verfügbar sind, damit sie nicht im laufenden Betrieb komprimiert werden müssen.
In diesem Fall können Sie nicht nur auf Standardnamen beschränkt werden. Um ein beliebiges Skript auszuführen, müssen Sie "npm run
script-name " ausführen.
Es ist praktisch, alle verwendeten Skripte an einem Ort zu sammeln.
Ein Beispiel:
"scripts": { "install": "node scripts/install-extras", "start": "node src/well/hidden/main/server extra_param_1 extra_param_2", "another-script": "node scripts/another-script" }
PS Die Erweiterung ".js" kann in den meisten Fällen weggelassen werden.