Für eine Knotenanwendung musste ich einen Knoten mit einem Harmony-Flag ausführen, z.
node --harmony app.js
Was ist diese Harmonie-Flagge? Was macht es und warum kann die App ohne sie nicht ausgeführt werden?
Ich habe versucht, die Befehlszeilenoptionen für Knoten ( node --help) zu untersuchen, aber sie enthalten auch keine Details. Knotendokumente halfen auch nicht weiter.
So --harmonyeine Verknüpfung ist es, all Harmonie - Funktionen zu aktivieren (zB --harmony_scoping, --harmony_proxiesusw.) Aus dieser Blog - Post , so scheint es , Harmonie neue ECMAScript 6 Funktionen in der Sprache ermöglicht. Der Grund, warum Ihre Datei nicht ohne Harmonie ausgeführt wird, app.jsliegt wahrscheinlich darin, dass nicht abwärtskompatible Funktionen aus dem neuen ECMAScript 6-Standard verwendet werden (wie Block Scoping, Proxys, Sets, Maps usw.).
Vielen Dank! Es macht jetzt alles Sinn. Übrigens. Irgendwelche Ideen, was entspricht man nodeWindows? :)
jsalonen
3
@jsalonen gibt es keine, aber Sie können tun > node --v8-options, um die hier genannten Sachen zu bekommen
Eis
@eis in Windows gibt es eine Konvention der Verwendung von --help(oder -h); Das funktioniert mit den meisten Konsolenprogrammen node -h, auch wenn es keinen bestimmten man-Befehl gibt. Aber nicht für 'DOS'-Befehle selbst; für diejenigen, die Sie tun help dirkönnen help set, etc. Seufz.
Jon Coombs
@ JonCoombs Ich denke, /?wird eher mit alten "dos" -Befehlen verwendet. Aber es gibt sowieso keinen Standard, ich glaube nicht, dass ich zum Beispiel -hviel verwendet habe.
Eis
10
Wenn Sie ECMAScript 6-Funktionen in einer älteren Version von nodejs ausführen möchten, können Sie das Flag --harmony verwenden. Die neueste Version des Knotens unterstützt ES6, sodass kein --harmony-Flag erforderlich ist
Wie in der Knotendokumentation erwähnt, aktiviert das Flag --harmony die nicht stabilen, aber bald stabilisierbaren Funktionen von ES6
Das aktuelle Verhalten des Flags --harmony in Node.js besteht darin, nur bereitgestellte Funktionen zu aktivieren. Immerhin ist es jetzt ein Synonym für --es_staging. Wie oben erwähnt, handelt es sich hierbei um abgeschlossene Funktionen, die noch nicht als stabil eingestuft wurden. Wenn Sie auf Nummer sicher gehen möchten, insbesondere in Produktionsumgebungen, sollten Sie dieses Laufzeitflag entfernen, bis es standardmäßig auf V8 und folglich auf Node.js ausgeliefert wird. Wenn Sie diese Option aktiviert lassen, sollten Sie auf weitere Upgrades von Node.j vorbereitet sein, um Ihren Code zu beschädigen, wenn V8 die Semantik ändert, um dem Standard besser zu entsprechen.
Alle ECMAScript 2015 (ES6) -Funktionen sind in drei Gruppen für Versand-, inszenierte und laufende Funktionen unterteilt:
Alle Versandfunktionen , die V8 als stabil erachtet, sind in Node.js standardmäßig aktiviert und erfordern KEIN Laufzeitflag.
Bereitgestellte Features , bei denen es sich um fast abgeschlossene Features handelt, die vom V8-Team nicht als stabil angesehen werden, erfordern ein Laufzeitflag: - Harmonie .
In Bearbeitung befindliche Funktionen können einzeln über das jeweilige Harmonie-Flag aktiviert werden. Dies wird jedoch nur zu Testzwecken dringend empfohlen. Hinweis: Diese Flags werden von V8 verfügbar gemacht und können sich möglicherweise ohne Hinweis auf eine Ablehnung ändern.
man node
Windows? :)> node --v8-options
, um die hier genannten Sachen zu bekommen--help
(oder-h
); Das funktioniert mit den meisten Konsolenprogrammennode -h
, auch wenn es keinen bestimmten man-Befehl gibt. Aber nicht für 'DOS'-Befehle selbst; für diejenigen, die Sie tunhelp dir
könnenhelp set
, etc. Seufz./?
wird eher mit alten "dos" -Befehlen verwendet. Aber es gibt sowieso keinen Standard, ich glaube nicht, dass ich zum Beispiel-h
viel verwendet habe.Wenn Sie ECMAScript 6-Funktionen in einer älteren Version von nodejs ausführen möchten, können Sie das Flag --harmony verwenden. Die neueste Version des Knotens unterstützt ES6, sodass kein --harmony-Flag erforderlich ist
quelle
Es aktiviert Harmony-Module in Knoten js: http://wiki.ecmascript.org/doku.php?id=harmony:modules
quelle
Wie in der Knotendokumentation erwähnt, aktiviert das Flag --harmony die nicht stabilen, aber bald stabilisierbaren Funktionen von ES6
quelle
Alle ECMAScript 2015 (ES6) -Funktionen sind in drei Gruppen für Versand-, inszenierte und laufende Funktionen unterteilt:
Alle Versandfunktionen , die V8 als stabil erachtet, sind in Node.js standardmäßig aktiviert und erfordern KEIN Laufzeitflag.
Bereitgestellte Features , bei denen es sich um fast abgeschlossene Features handelt, die vom V8-Team nicht als stabil angesehen werden, erfordern ein Laufzeitflag: - Harmonie .
In Bearbeitung befindliche Funktionen können einzeln über das jeweilige Harmonie-Flag aktiviert werden. Dies wird jedoch nur zu Testzwecken dringend empfohlen. Hinweis: Diese Flags werden von V8 verfügbar gemacht und können sich möglicherweise ohne Hinweis auf eine Ablehnung ändern.
Quelle : https://nodejs.org/en/docs/es6/
quelle