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"]
}