Aplikacja węzła wymagała ode mnie uruchomienia węzła z flagą harmonii, na przykład:
node --harmony app.js
Co to za flaga harmonii? Co robi i dlaczego aplikacja nie może się bez niego uruchomić?
Próbowałem sprawdzić opcje wiersza poleceń węzła ( node --help), ale nie zawiera on również żadnych szczegółów. Dokumenty węzłów również nie były pomocne.
Więc --harmonyjest to skrót, aby włączyć wszystkie funkcje harmoniczne (np --harmony_scoping, --harmony_proxiesetc.) Od tego blogu , wydaje harmonia umożliwia ECMAScript 6 nowych możliwości w języku. Plik nie uruchamia się bez harmonii, ponieważ app.jsprawdopodobnie używa niekompatybilnych wstecz funkcji z nowego standardu ECMAScript 6 (takich jak zakres bloków, proxy, zestawy, mapy itp.)
Wielkie dzięki! Teraz wszystko nabiera sensu. Btw. jakieś pomysły, co jest odpowiednikiem man nodew systemie Windows? :)
jsalonen,
3
@ jsalonen nie ma, ale możesz zrobić, > node --v8-optionsaby dostać rzeczy, o których tu mowa
eis
@eis w systemie Windows istnieje konwencja używania --help(lub -h); działa z większością programów konsolowych, więc node -hdziała, nawet jeśli nie ma określonego polecenia man. Ale nie dla samych poleceń „DOS”; dla tych, którzy mogą to zrobić help dir, help setitp Ech.
Jon Coombs
@JonCoombs Myślę, że /?jest częściej używany ze starymi poleceniami „dos”. Ale w każdym razie nie ma jednego standardu, nie sądzę, że widziałem na przykład -hwiele używanego.
eis
10
Jeśli chcesz uruchomić funkcje ECMAScript 6 w starszej wersji nodejs, możesz użyć flagi --harmony. Najnowsza wersja węzła obsługuje ES6, więc nie trzeba flagi --harmony
Jak wspomniano w Dokumentacji węzła, flaga --harmony włącza niestabilne, ale wkrótce stabilne funkcje ES6
Obecne zachowanie flagi --harmony w Node.js polega na włączeniu tylko funkcji etapowych. W końcu jest teraz synonimem --es_staging. Jak wspomniano powyżej, są to kompletne funkcje, które nie zostały jeszcze uznane za stabilne. Jeśli chcesz grać bezpiecznie, szczególnie w środowiskach produkcyjnych, rozważ usunięcie tej flagi środowiska uruchomieniowego, dopóki nie zostanie domyślnie dostarczona w wersji 8, aw konsekwencji w Node.js. Jeśli włączysz tę opcję, powinieneś być przygotowany na dalsze aktualizacje Node.js, aby złamać kod, jeśli V8 zmieni ich semantykę, aby ściślej przestrzegać standardu.
Wszystkie funkcje ECMAScript 2015 (ES6) są podzielone na trzy grupy dla funkcji wysyłkowej, etapowej i w toku:
Wszystkie funkcje wysyłki , które V8 uważa za stabilne, są domyślnie włączone w Node.js i NIE wymagają żadnych flag wykonawczych.
Funkcje etapowe , które są prawie ukończonymi funkcjami, które nie są uważane za stabilne przez zespół V8, wymagają flagi czasu wykonywania: - harmonia .
W toku funkcje mogą być aktywowane indywidualnie za pomocą odpowiedniej flagi harmonii, chociaż jest to wysoce odradzane, chyba że do celów testowych. Uwaga: te flagi są widoczne w wersji V8 i potencjalnie mogą ulec zmianie bez powiadomienia o wycofaniu.
man node
w systemie Windows? :)> node --v8-options
aby dostać rzeczy, o których tu mowa--help
(lub-h
); działa z większością programów konsolowych, więcnode -h
działa, nawet jeśli nie ma określonego polecenia man. Ale nie dla samych poleceń „DOS”; dla tych, którzy mogą to zrobićhelp dir
,help set
itp Ech./?
jest częściej używany ze starymi poleceniami „dos”. Ale w każdym razie nie ma jednego standardu, nie sądzę, że widziałem na przykład-h
wiele używanego.Jeśli chcesz uruchomić funkcje ECMAScript 6 w starszej wersji nodejs, możesz użyć flagi --harmony. Najnowsza wersja węzła obsługuje ES6, więc nie trzeba flagi --harmony
źródło
Umożliwia moduły harmonii w węźle js: http://wiki.ecmascript.org/doku.php?id=harmony:modules
źródło
Jak wspomniano w Dokumentacji węzła, flaga --harmony włącza niestabilne, ale wkrótce stabilne funkcje ES6
źródło
Wszystkie funkcje ECMAScript 2015 (ES6) są podzielone na trzy grupy dla funkcji wysyłkowej, etapowej i w toku:
Wszystkie funkcje wysyłki , które V8 uważa za stabilne, są domyślnie włączone w Node.js i NIE wymagają żadnych flag wykonawczych.
Funkcje etapowe , które są prawie ukończonymi funkcjami, które nie są uważane za stabilne przez zespół V8, wymagają flagi czasu wykonywania: - harmonia .
W toku funkcje mogą być aktywowane indywidualnie za pomocą odpowiedniej flagi harmonii, chociaż jest to wysoce odradzane, chyba że do celów testowych. Uwaga: te flagi są widoczne w wersji V8 i potencjalnie mogą ulec zmianie bez powiadomienia o wycofaniu.
źródło : https://nodejs.org/en/docs/es6/
źródło