Soll package.json manuell bearbeitet werden? Könnte ein Programm wie npm nicht einfach durch die Dateien schauen, die "require"-Anweisungen sehen und diese dann benutzen, um die notwendigen Einträge in die package.json-Datei zu setzen? Gibt es solche Programme?
Antworten
Zu viele Anzeigen?Die Datei package.json wird verwendet von npm um mehr über Ihr node.js-Projekt zu erfahren.
Utilice npm init
um package.json-Dateien für Sie zu erzeugen!
Es wird mit npm gebündelt. Lesen Sie seine Dokumentation hier: https://docs.npmjs.com/cli/init
Außerdem gibt es ein offizielles Tool, mit dem Sie diese Datei programmatisch erstellen können: https://github.com/npm/init-package-json
Als Erstes führen Sie
npm init
...wird Ihnen ein paar Fragen stellen ( Lesen Sie dies zuerst ) über Ihr Projekt/Paket und generiert dann eine package.json-Datei für Sie.
Wenn Sie dann eine package.json-Datei haben, verwenden Sie
npm install <pkg> --save
ou
npm install <pkg> --save-dev
...um eine Abhängigkeit zu installieren und sie automatisch an Ihre package.json
's dependencies
Liste.
(Hinweis: Möglicherweise müssen Sie die Versionsbereiche für Ihre Abhängigkeiten manuell anpassen).
Ich habe gerade ein einfaches Skript geschrieben, um die Abhängigkeiten in ./node_modules zu sammeln. Damit ist meine Anforderung im Moment erfüllt. Vielleicht hilft es anderen, ich poste es hier.
var fs = require("fs");
function main() {
fs.readdir("./node_modules", function (err, dirs) {
if (err) {
console.log(err);
return;
}
dirs.forEach(function(dir){
if (dir.indexOf(".") !== 0) {
var packageJsonFile = "./node_modules/" + dir + "/package.json";
if (fs.existsSync(packageJsonFile)) {
fs.readFile(packageJsonFile, function (err, data) {
if (err) {
console.log(err);
}
else {
var json = JSON.parse(data);
console.log('"'+json.name+'": "' + json.version + '",');
}
});
}
}
});
});
}
main();
In meinem Fall gibt das obige Skript Folgendes aus:
"colors": "0.6.0-1",
"commander": "1.0.5",
"htmlparser": "1.7.6",
"optimist": "0.3.5",
"progress": "0.1.0",
"request": "2.11.4",
"soupselect": "0.2.0", // Remember: remove the comma character in the last line.
Jetzt können Sie sie kopieren und einfügen. Viel Spaß!
npm init
um die Datei package.json zu erstellen, und dann verwenden Sie
ls node_modules/ | xargs npm install --save
um die im Ordner node_modules vorhandenen Module einzutragen.
Bearbeiten: @paldepind wies darauf hin, dass der zweite Befehl redundant ist, weil npm init
fügt nun automatisch hinzu, was Sie in Ihrem Ordner node_modules/ haben. Ich weiß nicht, ob dies schon immer der Fall war, aber jetzt funktioniert es zumindest ohne den zweiten Befehl.
Befehlszeile :
npm init
wird die Datei package.json erstellt
Zum Installieren, Aktualisieren und Deinstallieren von Paketen unter Abhängigkeiten in der Datei package.json:
Befehlszeile :
npm install <pkg>@* --save
fügt automatisch die neueste Version des Pakets unter dependencies in die Datei package.json ein
EX:
npm install node-markdown@* --save
Befehlszeile :
npm install <pkg> --save
fügt auch automatisch die neueste Version des Pakets unter dependencies in die package.json-Datei ein
wenn Sie benötigen eine bestimmte Version für ein Paket Befehlszeile :
npm install <pkg>@<version> --save
fügt automatisch eine bestimmte Version des Pakets unter Abhängigkeiten in die Datei package.json ein
EX:
npm install koa-views@1.0.0 --save
wenn Sie benötigen einen bestimmten Versionsbereich für ein Paket, verwenden Sie dies Befehlszeile :
npm install <pkg>@<version range>
fügt automatisch die neueste Version für das Paket zwischen den Versionen unter Abhängigkeiten in die Datei package.json ein
EX:
npm install koa-views@">1.0.0 <1.2.0" --save
Für mehr Details darüber, wie man eine Version für ein Paket schreibt npm Doc
Befehlszeile :
npm update --save
aktualisiert die Pakete in der Datei package.json und fügt automatisch aktualisierte Versionen für alle Pakete unter den Abhängigkeiten in die Datei package.json ein
Befehlszeile :
npm uninstall <pkg> --save
entfernt automatisch Pakete aus den Abhängigkeiten in der Datei package.json und aus dem Ordner node_module
- See previous answers
- Weitere Antworten anzeigen