In Python gibt es ein nettes Feature, python -i
. Zum Beispiel wird python -i myprogram.py
das Programm ausführen und dann in den interaktiven Modus wechseln, als hätte ich das gesamte Programm in die interaktive Shell eingefügt.
Gibt es einen ähnlichen Befehl in node.js?
Ich denke, dass die ausführbare Datei des Knotens nicht zulässt, dass Sie -i
mit einem anderen Dateiargument kombinieren.
Dies ist wahrscheinlich nicht die Lösung, die Sie lesen möchten. Das hat aber für mich funktioniert. Es gibt ein Modul namens REPL, das Sie im Prinzip manuell ausführen lässt. So erkannte ich, dass ich einen Wrapper um jede Datei erstellen konnte, wie folgt:
%Vor% Angenommen, Sie rufen dieses Skript nodejs
auf, dann kann ich dieses Skript so etwas wie
Er startet die REPL programmatisch und lädt Ihr Skript hinein. Dies entspricht dem manuellen Öffnen einer REPL-Sitzung und dem Ausführen des Befehls .load <file>
.
Dokumente in Ссылка
Laden Sie das angegebene Modul beim Start vor.
Folgt den modul resolution rules von required (). Modul kann entweder a Pfad zu einer Datei oder der Name eines Knotenmoduls.
node -i -r ./myprogram.js
Bewerten Sie das folgende Argument als JavaScript. Die Module, die sind Vordefiniert in der REPL kann auch im Skript verwendet werden.
node -i -e "console.log('A message')"
Diese Funktionen wurden seit der letzten Antwort im Jahr 2014 mit den folgenden Pull-Requests hinzugefügt.
Es ist bedauerlich, dass Knoten keine integrierte Lösung dafür hat. Wie bereits erwähnt, können Sie Module mit der Option -r
vorladen, aber Sie können immer noch nicht auf die REPL zugreifen, was sie ein wenig nutzlos macht.
Bisher war die beste Lösung, die ich gefunden habe,
%Vor%Wo test.js die Datei ist, die Sie ausführen möchten. Dies sendet es über stdin, als ob Sie die Datei selbst eingegeben hätten und dann auf zusätzliche Eingaben warten würden. Ein Nachteil ist, dass es die Datei und das Ergebnis jeder Zeile an der Eingabeaufforderung zurückgibt.
Tags und Links node.js