Ich möchte in der Lage sein, den Befehl script1
in einem Projektverzeichnis auszuführen, in dem node script1.js
ausgeführt wird.
script1.js
ist eine Datei im selben Verzeichnis. Der Befehl muss spezifisch für das Projektverzeichnis sein. Wenn ich also den Projektordner an eine andere Person sende, kann er denselben Befehl ausführen.
Bisher habe ich versucht, Folgendes hinzuzufügen:
"scripts": {
"script1": "node script1.js"
}
in meine package.json-Datei, aber wenn ich versuche, script1
auszuführen, erhalte ich die folgende Ausgabe:
zsh: command not found: script1
Kennt jemand die erforderlichen Schritte, um das oben erwähnte Skript zum Projektordner hinzuzufügen?
* Hinweis: Der Befehl kann nicht zum Bash-Profil hinzugefügt werden (kann kein maschinenspezifischer Befehl sein)
Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
npm run-script <custom_script_name>
oder
npm run <custom_script_name>
In Ihrem Beispiel möchten Sie npm run-script script1
oder npm run script1
ausführen.
Siehe https://docs.npmjs.com/cli/run-script
Mit Node können Sie auch benutzerdefinierte Skripts für bestimmte Lebenszyklusereignisse ausführen, beispielsweise nachdem npm install
ausgeführt wurde. Diese finden Sie hier .
Zum Beispiel:
"scripts": {
"postinstall": "electron-rebuild",
},
Dies würde electron-rebuild
nach einem npm install
-Befehl ausführen.
Ich habe folgendes erstellt und es funktioniert auf meinem System. Bitte versuchen Sie das:
package.json:
{
"name": "test app",
"version": "1.0.0",
"scripts": {
"start": "node script1.js"
}
}
script1.js:
console.log('testing')
Führen Sie in Ihrer Befehlszeile den folgenden Befehl aus:
npm start
Zusätzlicher Anwendungsfall
Meine package.json-Datei enthält im Allgemeinen die folgenden Skripts, die es mir ermöglichen, meine Dateien auf TypeScript, Sass-Compilations und den Betrieb eines Servers zu überprüfen.
"scripts": {
"start": "concurrently \"sass --watch ./style/sass:./style/css\" \"npm run tsc:w\" \"npm run lite\" ",
"tsc": "tsc",
"tsc:w": "tsc -w",
"lite": "lite-server",
"typings": "typings",
"postinstall": "typings install"
}
Schritte sind unten:
In package.json fügen Sie hinzu:
"bin":{
"script1": "bin/script1.js"
}
Erstellen Sie einen bin
-Ordner im Projektverzeichnis und fügen Sie die Datei runScript1.js
mit dem Code hinzu:
#! /usr/bin/env node
var Shell = require("shelljs");
Shell.exec("node step1script.js");
Führen Sie npm install shelljs
im Terminal aus
Führen Sie npm link
im Terminal aus
Vom Terminal aus können Sie jetzt script1
ausführen und node script1.js
ausführen.
Referenz: http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm
Beispiel:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"build_c": "ng build --prod && del \"../../server/front-end/*.*\" /s /q & xcopy /s dist \"../../server/front-end\"",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Wie Sie sehen, erstellt das Skript "build_c" die Winkelanwendung, löscht dann alle alten Dateien aus einem Verzeichnis und kopiert anschließend die Ergebniserstellungsdateien.