javascript node.js ecmascript-6 importerror

javascript - importación inesperada de palabras reservadas en node.js



ecmascript-6 importerror (3)

Estoy tratando de ejecutar el servidor de backend node.js. Recibí un error unexpected reserved word al importar en el archivo Node.js.

Las líneas en el archivo core.module.js son:

''use strict''; import lodashMixins from ''./lodashMixins.js'' ... other imports and configurations ...

node core.module.js comando simple: node core.module.js

No es un error poco común, pero generalmente ocurre con otras bibliotecas. No he visto una solución para Node.js. ¿Cómo debo arreglar esto? Estoy usando Windows Server.

Editar: descubrí que es ES6, pero ¿cómo podría iniciarlo? Parece una aplicación de fondo para la aplicación, pero no tengo idea de qué comando debo usar para iniciarla sin errores.


La palabra clave import es parte de la función de módulos en ECMAScript 2015 , junto con la export y algunas otras especificaciones.

Actualmente no se implementa de forma nativa en NodeJS, ni siquiera en la última versión (v0.12.7), ni se admite en la bifurcación "más amigable" ES2015.

Deberá usar un transpiler para que funcione.

[editar] todavía no se admite en la última versión (v5.8) a pesar de la existencia de un indicador --harmony_modules , que no hace nada . Su mejor opción es usar babel, como se explica here y here


Me encontré con este problema al instalar manualmente cualquiera de estas herramientas fuera de Visual Studio. Pero Visual Studio se entrega con múltiples herramientas de línea de comandos de código abierto que se utilizan en los flujos de trabajo de desarrollo web modernos. Así es como puede decirle a Visual Studio que use la misma versión que instaló manualmente

Vaya a Herramientas -> Opciones -> Proyectos y soluciones -> Herramientas web externas

  • Establezca la variable de entorno PATH global antes de la ruta interna, solo puede usar las flechas en la esquina superior derecha para cambiar el orden.

o

  • Primero, encuentre la instalación de Node.js que ya tiene y úsela en la línea de comandos. Por defecto, Node.js 0.12.7 se instala en "C: / Archivos de programa / nodejs". Agregue esta entrada en la parte superior de la ruta al directorio node.js para forzar a Visual Studio a usar esa versión en su lugar

import es parte del ECMAScript 2015 (ES6) standard y, como se mencionó anteriormente en Amit , actualmente no se implementa de forma nativa en Nodejs.

Para que pueda usar Transpiler como babel para ejecutar su script es6

npm install babel

Un ejemplo basado en esta answer

app.js

import {helloworld,printName} from ''./es6'' helloworld(); printName("John");

es6.js

module.exports = { helloworld: function() { console.log(''hello world!''); }, printName: function(name) { console.log(name); } }

Y usando require hook en start.js

require("babel/register"); var app = require("./app.js");

Y comienza tu aplicación como

node start.js

EDITAR La respuesta anterior se babel v5.8.23 en babel v5.8.23 . Para babel >= v6

Utilice require hook en start.js como

require(''babel-core/register''); require("./app.js");

Además, las transformaciones no están habilitadas de forma predeterminada. Por lo tanto, deberá instalar un preset . En este caso use es2015

npm install babel-preset-es2015

Y .babelrc en un archivo .babelrc en la carpeta raíz

{ "presets": ["es2015"] }