work usar unexpected syntaxerror nodejs node es6 error doesn node.js babel

node.js - usar - syntaxerror unexpected token import



Error de nodo: SyntaxError: importaciĆ³n de token inesperada (6)

1) Instalar los últimos preajustes

yarn add --dev babel-preset-latest

2) Cree .babelrc y agregue lo siguiente

{ "presets": ["latest"] }

3) Ejecute su script

npx babel-node yourscript.js

O en su archivo package.json agregue

"scripts": { "start": "babel-node index.js" }

No entiendo lo que está mal. Revisé otro foro hablando sobre transpilación y babel. ¿Que tengo que hacer?

node -v v5.5.0

mi código:

import recast from ''recastai''

y el error

(function (exports, require, module, __filename, __dirname) { import recast from ''module1'' ^^^^^^ SyntaxError: Unexpected token import at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:387:25) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:139:18) at node.js:999:3


Empezando

Primero instalaremos babel-cli.

$ npm install --save-dev babel-cli

Junto con algunos presets.

$ npm install --save-dev babel-preset-es2015 babel-preset-stage-2

package.json:

"scripts": { "start": "babel-node index.js --presets es2015,stage-2" }

correr:

$ npm start

Observando los cambios de archivos con nodemon :

Podemos mejorar nuestro script de inicio npm con nodemon.

$ npm install --save-dev nodemon

Entonces podemos actualizar nuestro script de inicio npm.

package.json:

"scripts": { "start": "nodemon index.js --exec babel-node --presets es2015,stage-2" }

correr:

$ npm start

Si está utilizando pm2 , siga estos pasos:

$ pm2 start app.js --interpreter babel-node


En caso de que no quieras tratar con Babel. Este me funcionó.

const calc = require(''./my_calc''); let {add, multiply} = calc;


Es muy simple resolver este problema, import es la sintaxis de ES6 y Node tiene dificultades para admitirlo, debe agregar Babel como transpiler, vaya a package.json y agregue lo siguiente

Primero agregue una etiqueta de script para usar babel mientras ejecuta el código JS para transpilar.

"scripts": { "start": "nodemon ./app.js --exec babel-node -e js" }

Y luego agregue lo siguiente como Babel devDependencies

"devDependencies": { "babel-cli": "^6.26.0", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-0": "^6.24.1" }

después de esto, también debe configurar el archivo de presets de babel, por lo tanto, cree el archivo .babelrc en el directorio raíz y defina los presets de la siguiente manera

{ "presets": [ "es2015", "stage-0" ] }

No olvides hacer una npm install al final



Las importaciones de ES6 son una característica recientemente introducida y la versión estable actual de Node aún no las admite. El rastreador de problemas de Node.js tiene un problema abierto para esto, pero hasta que V8 y Node agreguen soporte para esta característica, deberá usar un transpilador (el más popular es babel ) para poder usar las importaciones.

Para probar rápidamente la transpilación, babel proporciona un REPL basado en la web. Este demuestra que su código se está transpilando.

La babel apunta a los recursos relevantes para comenzar con Babel e integrarlo con su flujo de trabajo de desarrollo.

Para la configuración más simple, visite esta página de configuración y seleccione CLI en la sección incorporada de Babel.

Básicamente, esto implica tres pasos simples:

  1. Instalar babel-cli: npm install --save-dev babel-cli babel-preset-es2015
  2. Cree el archivo de configuración .babelrc : echo ''{ "presets": ["es2015"] }'' > .babelrc
  3. Use el módulo instalado para transpilar su código fuente: ./node_modules/.bin/babel src -d lib

La página de configuración mencionada también ilustra cómo agregar un script npm para simplificar el último paso. Alternativamente, puede integrar babel con su editor o cadena de compilación para que sus archivos se compilen automáticamente en caso de cambio.