Una aplicación de nodo me ha requerido ejecutar un nodo con un indicador de armonía, como:
node --harmony app.js
¿Qué es esta bandera de armonía? ¿Qué hace y por qué la aplicación no puede ejecutarse sin ella?
He intentado buscar en las opciones de la línea de comandos del nodo ( node --help), pero tampoco proporciona ningún detalle. Los documentos de nodo tampoco fueron de ninguna ayuda.
Por --harmonylo tanto, es un acceso directo para habilitar todas las características de armonía (por ejemplo --harmony_scoping, --harmony_proxiesetc.). De esta publicación de blog , parece que la armonía permite nuevas características de ECMAScript 6 en el lenguaje. La razón por la que su archivo no se ejecutará sin armonía es porque app.jsprobablemente esté usando características no compatibles con versiones anteriores del nuevo estándar ECMAScript 6 (como alcance de bloque, proxies, conjuntos, mapas, etc.)
¡Muchas gracias! Todo tiene sentido ahora. Por cierto. alguna idea de cuál es el equivalente de man nodeen Windows? :)
jsalonen
3
@jsalonen no hay uno, pero se puede hacer > node --v8-optionspara obtener la materia a que se refiere aquí
EIS
@eis en Windows hay una convención de usar --help(o -h); eso funciona con la mayoría de los programas de consola, así que node -hfunciona, aunque no haya un comando man específico. Pero no para los comandos 'DOS' mismos; para aquellos que puede hacer help dir, help setetc. suspiro.
Jon Coombs
@JonCoombs creo que /?se usa más con los viejos comandos "dos". Pero de todos modos no hay un estándar, no creo que haya visto, por ejemplo, que se -huse mucho.
EIS
10
Si desea ejecutar las características de ECMAScript 6 en una versión anterior de nodejs, puede usar el indicador --harmony. La última versión del nodo es compatible con ES6, por lo que no es necesario usar el indicador
Los módulos son solo una característica de la armonía.
code_monk
4
Como se menciona en la documentación del nodo, el indicador --harmony habilita las características no estables, pero pronto serán estables de ES6
El comportamiento actual del indicador --harmony en Node.js es habilitar solo las funciones preparadas. Después de todo, ahora es sinónimo de --es_staging. Como se mencionó anteriormente, estas son características completas que aún no se han considerado estables. Si desea jugar de forma segura, especialmente en entornos de producción, considere eliminar este indicador de tiempo de ejecución hasta que se envíe por defecto en V8 y, en consecuencia, en Node.js. Si mantiene esto habilitado, debe estar preparado para futuras actualizaciones de Node.js para romper su código si V8 cambia su semántica para seguir más de cerca el estándar.
Todas las características de ECMAScript 2015 (ES6) se dividen en tres grupos para las características de envío, por etapas y en curso:
Todas las funciones de envío , que V8 considera estables, están activadas de manera predeterminada en Node.js y NO requieren ningún tipo de indicador de tiempo de ejecución.
Las características por etapas , que son características casi completas que el equipo V8 no considera estables, requieren un indicador de tiempo de ejecución: - armonía .
Las características en progreso pueden activarse individualmente mediante su respectivo indicador de armonía, aunque esto no se recomienda a menos que sea para fines de prueba. Nota: estos indicadores están expuestos por V8 y potencialmente cambiarán sin previo aviso de desaprobación.
man node
en Windows? :)> node --v8-options
para obtener la materia a que se refiere aquí--help
(o-h
); eso funciona con la mayoría de los programas de consola, así quenode -h
funciona, aunque no haya un comando man específico. Pero no para los comandos 'DOS' mismos; para aquellos que puede hacerhelp dir
,help set
etc. suspiro./?
se usa más con los viejos comandos "dos". Pero de todos modos no hay un estándar, no creo que haya visto, por ejemplo, que se-h
use mucho.Si desea ejecutar las características de ECMAScript 6 en una versión anterior de nodejs, puede usar el indicador --harmony. La última versión del nodo es compatible con ES6, por lo que no es necesario usar el indicador
fuente
Permite módulos de armonía en el nodo js: http://wiki.ecmascript.org/doku.php?id=harmony:modules
fuente
Como se menciona en la documentación del nodo, el indicador --harmony habilita las características no estables, pero pronto serán estables de ES6
fuente
Todas las características de ECMAScript 2015 (ES6) se dividen en tres grupos para las características de envío, por etapas y en curso:
Todas las funciones de envío , que V8 considera estables, están activadas de manera predeterminada en Node.js y NO requieren ningún tipo de indicador de tiempo de ejecución.
Las características por etapas , que son características casi completas que el equipo V8 no considera estables, requieren un indicador de tiempo de ejecución: - armonía .
Las características en progreso pueden activarse individualmente mediante su respectivo indicador de armonía, aunque esto no se recomienda a menos que sea para fines de prueba. Nota: estos indicadores están expuestos por V8 y potencialmente cambiarán sin previo aviso de desaprobación.
fuente : https://nodejs.org/en/docs/es6/
fuente