Error de nodo: SyntaxError: importación de token inesperado

No entiendo lo que está mal. Revisé otro foro hablando sobre transstacktion 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 

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, necesitarás usar un transpiler (el más popular es babel ) para poder usar importaciones.

Para probar rápidamente la transstackción, babel proporciona un REPL basado en la web. Esto demuestra que tu código está siendo transstackdo.

La página principal del proyecto babel señala los recursos relevantes para comenzar con Babel e integrarlo con su flujo de trabajo de desarrollo.

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

Esto básicamente implica tres pasos simples:

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

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

En caso de que no quieras tratar con Babel. Éste trabajó para mí.

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

1) Instale los últimos ajustes preestablecidos

 yarn add --dev babel-preset-latest 

2) Cree .babelrc y agregue lo siguiente

 { "presets": ["latest"] } 

3) Ejecuta tu script

 npx babel-node yourscript.js 

O en su archivo package.json agregar

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

Gracias a una propuesta de mejora de NodeJS tenemos un camino a seguir. Puedes usar @standard-things/esm

Encuentra el anuncio aquí Simplemente ejecuta

 npm i --save @std/esm 

En su paquete hoy.

Empezando

Primero instalaremos babel-cli.

 $ npm install --save-dev babel-cli 

Junto con algunos ajustes preestablecidos.

 $ 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 

Ver 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 

Es muy simple resolver este problema, import es la syntax de ES6 y Node tiene dificultad para soportarlo, necesita agregar Babel como transpiler, ir a package.json y agregar lo siguiente

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

 "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 necesita configurar el archivo de preajustes de babel, por lo tanto, cree el archivo .babelrc en el directorio raíz y defina los preajustes de la siguiente manera

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

No te olvides de hacer una npm install al final

    Intereting Posts