wake-up-neo.com

Node.js-Buildsystem in Sublime Text 2

Ich habe gerade angefangen, JavaScript zu lernen. Dabei habe ich es satt, meinen JavaScript-Code in ein HTML-Dokument einzubetten, um ihn im Browser auszuführen. Ich dachte, es wäre schön, wenn ich meine Skripts direkt in der Sublime-Konsole ausführen würde, um den Editor nicht zu verlassen. Deshalb habe ich versucht, ein JavaScript-Build-System zu erstellen, da Sublime nicht mit einem kommt.

Meine Idee war, Node.js als JavaScript-Interpreter zu verwenden. Ich habe es mit dem Paketmanager von Linux Mint installiert. Soweit ich sagen kann, funktioniert es gut. Nehmen wir an, ich habe eine Datei test.js die folgende Zeile JavaScript-Code enthält: 

console.log ("Hallo Welt");

Wenn ich renne 

nodejs /path/to/test.js
In meiner Konsole bekomme ich: 
Hallo Welt
Ich verstehe das jedoch nicht, um mit Sublime zu arbeiten. Ich habe ein neues Build-System erstellt, indem Sie auf klicken Extras/Build System/Neues Build System. Ich habe dann folgende Zeilen eingegeben: 
{
 "cmd": ["nodejs", "$ file"] 
}
Soweit ich weiß, ist diese eine Zeile die JSON-Darstellung des folgenden Befehls: 
nodejs /path/to/current/file.ext
Wie ich schon sagte, wenn ich das manuell in der Konsole starte, funktioniert es gut. Wenn ich in Sublime F7 drücke, ist dies die Abkürzung für BauenDie Konsole von Sublime wird angezeigt. Es ist aber leer.

Es gibt noch eine andere seltsame Sache. Obwohl die (nicht vorhandene) Ausgabe der Sublime-Konsole darauf hinweist, dass das Buildsystem nicht für die korrekte Verwendung von Node.js konfiguriert ist, wurden einige Node.js-Fehler angezeigt, wenn ich versehentlich versuchte, Nicht-JS-Dateien wie die Node.sublime-build Datei. Dies ist die Ausgabe, die in der Sublime-Konsole angezeigt wird: 

/home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build: 2 
 "cmd": ["nodejs", "$ file"] 
 ^

module.js: 434 var compiledWrapper = runInThisContext (Wrapper, Dateiname, true); ^ SyntaxError: Unerwartetes Token: at Module._compile (module.js: 434: 25) bei Object..js (module.js: 464: 10) bei Module.load (module.js: 353: 32) at Function._load (module.js: 311: 12) bei Array.0 (module.js: 484: 10) at EventEmitter._tickCallback (node.js: 190: 39) .__ [In 0.1s mit Exit-Code 1 beendet] </ pre> Warum erhalte ich beim Ausführen von tatsächlichem JavaScript-Code keine Ausgabe? Danke im Voraus!

29
lambdarookie
{
    "cmd": ["node","$file"]
}

funktioniert perfekt für mich in windows und es zeigt die ausgabe im sublime fenster. Obwohl ich nicht weiß, wie ich den Server nach sublime stoppen soll, muss ich den Knotenprozess suchen und beenden.

Überprüfen Sie auch, ob der Knoten in Ihrem PATH ist;)

Ich hoffe es funktioniert für Sie.

43
garcianavalon

Mac-Benutzer geben Sie which node im Terminal ein. Es gibt den Pfad der ausführbaren Datei des Knotens aus, in den meisten Fällen /usr/local/bin/node. Erstellen Sie nun ein neues Buildsystem (Tools > Build System > New Build System) mit den folgenden Einstellungen in Sublime Text. 

{   
  "cmd": ["/usr/local/bin/node", "$file"],   
  "selector": "source.js"   
}
43
oozzal

Unter Ubuntu Linux getestet. Verwenden Sie eine Dateiauswahl wie folgt:

{
  "cmd": ["node", "$file"],
  "selector": "*.js"
}
7
Luke W

Hier ist ein Tipp für Windows,

Die meisten Antworten aus diesem Thread sind korrekt, aber keine ist vollständig und zumindest keine Antwort gibt an, wie Sie einen vorhandenen Knotenprozess beenden, selbst wenn Sie Knoten in sublime ausführen können. Wenn also einer der oben genannten Ansätze für Sie funktioniert hat, werden Sie am Ende den Knoten manuell beenden.

Hier ist was ich für "Windows" getan habe:

  1. Öffnen Sie Sublime Text, gehen Sie zu "Tools" -> "Build System" -> "New Build System".
  2. Oben wird eine neue Datei geöffnet, unter dem Inhalt eingefügt und als nodejs.xxx gespeichert (Standarderweiterung verwenden): { "Cmd": ["c: /test.bat", "$ file" ] }
  3. Erstellen Sie eine Datei (c: /test.bat) und fügen Sie diesen Inhalt (beide Zeilen) dort ein:

taskkill/F/IM "node.exe" "c:/Programme/nodejs/node.exe"% 1

  1. Speichern Sie es, wechseln Sie zu Sublime Text und wählen Sie "Tools" -> "Build System" -> "nodejs".
  2. Öffnen Sie eine beliebige Nodejs-Datei, und drücken Sie STRG + B.
  3. Du bist gut zu gehen. :)

Viel Spaß beim Noden.

4
Soman Dubey

Die Methode # 2 des Links unten wurde für mich gelöst:

http://www.wikihow.com/Create-a-Javascript-Console-in-Sublime-Text

3
rsc

Dies funktioniert für mich in Windows7

1) Öffnen Sie Sublime Text, gehen Sie zu "Tools" -> "Build System" -> "New Build System".

2) Fügen Sie diesen Text ein

{

"cmd": ["C:\\Program Files (x86)\\nodejs\\node","$file"]

}

\\ Fluchtzeichen

3) Speichern Sie als Node.sublime-build

4) Schreiben Sie eine neue js-Datei und drücken Sie STRG + B, um zu erstellen.

Klicken Sie auf hier , um ein Beispiel zu sehen.

2
Darth Pabor

Normalerweise

"cmd":["node",$file]

würde funktionieren. Es gibt jedoch keine Möglichkeit, den Server zu stoppen, als . Ich habe die beste Lösung herausgefunden, die den Server in der neuen Konsole öffnet und automatisch schließt

"cmd" : ["start", "cmd.exe", "/C", "node", "$file"]

Ich hoffe es wird helfen

1
Krzysztof Wende

Ich kann die Konsolenausgabe nur sehen, wenn die Datei vorhanden/auf der Festplatte gespeichert ist. (bei anonymen Dateien sehe ich auch keine Ausgabe)

Hoffe das hilft 

1
phani

Wenn alles andere fehlschlägt, aktivieren Sie Node Supervisor ....... Sie müssen nur den Code ändern, und der Server wird von selbst neu gestartet, damit Sie die Änderungen live sehen können.

0
Dactyllo

Möglicherweise hängt es von Umgebungsvariablen ab - versuchen Sie, den vollständigen Pfad zum Knoten anstelle von "nodejs" ..__ zu verwenden. Bei Mac OS hat es funktioniert (z. B./usr/local/node statt nur node)

0
kossoy

Unter Windows funktioniert die folgende Konfiguration:

{
    "cmd": ["C:\\Program Files\\nodejs\\node.exe", "$file"],
    "selector": "source.js"
}
0
henok_al