Standardmäßig ordnet Windows .js
Dateien dem Windows Script Host zu , der eigenständigen JS-Laufzeit-Engine von Microsoft. Wenn Sie an einer Eingabeaufforderung script.js eingeben (oder .js
im Explorer auf eine Datei doppelklicken ), wird das Skript von ausgeführt wscript.exe
.
Dies kann ein lokales Problem mit einem globalen Umfeld zu lösen , aber man konnte assoziieren .js
Dateien mit node.exe
statt, so dass der Eingabe script.js an einer Eingabeaufforderung oder einen Doppelklick / Ziehen Elemente auf Skripte werden sie mit Knoten starten.
Wenn Sie - wie ich - .js
Dateien mit einem Editor verknüpft haben, sodass ein Doppelklick darauf Ihren bevorzugten Texteditor öffnet, hilft dieser Vorschlag natürlich nicht viel. Sie können Dateien auch einen Rechtsklick-Menüeintrag "Mit Knoten ausführen" hinzufügen.js
, obwohl diese Alternative Ihre Befehlszeilenanforderungen nicht erfüllt.
Die einfachste Lösung besteht wahrscheinlich darin, nur eine Batch-Datei zu verwenden. Sie müssen keine Kopie von Node in dem Ordner haben, in dem sich Ihr Skript befindet. Verweisen Sie einfach auf die ausführbare Node-Datei:
"C:\Program Files (x86)\nodejs\node.exe" app.js %*
Eine andere Alternative ist diese sehr einfache C # -App, die Node mit seinem eigenen Dateinamen + .js
als Skript zum Ausführen startet und alle Befehlszeilenargumente weitergibt.
class Program
{
static void Main(string[] args)
{
var info = System.Diagnostics.Process.GetCurrentProcess();
var proc = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files (x86)\nodejs\node.exe", "\"" + info.ProcessName + ".js\" " + String.Join(" ", args));
proc.UseShellExecute = false;
System.Diagnostics.Process.Start(proc);
}
}
Wenn Sie also die resultierende EXE-Datei "app.exe" nennen, können Sie Folgendes eingeben, app arg1 ...
und Node wird mit der Befehlszeile gestartet "app.js" arg1 ...
. Beachten Sie, dass die C # -Bootstrapper-App sofort beendet wird und Node für das Konsolenfenster verantwortlich ist.
Da dies wahrscheinlich von relativ großem Interesse ist, habe ich dies auf GitHub verfügbar gemacht , einschließlich der kompilierten Exe, wenn es Ihr Ding ist, mit Fremden in Lieferwagen zu steigen.