Pregunta Babel 6 CLI: ¿exportación de token inesperada?


Estoy tratando de ejecutar Babel a través de CLI usando babel-node pero sigo obteniendo el Unexpected token export error. Entiendo que Babel 6 se trata de complementos y que necesito configurar el complemento .babelrc pero parece que no funciona correctamente

Asi que aqui están mis preguntas:

Para aquellos que sienten curiosidad por lo que estoy tratando de exportar, esta es la clase:

'use strict';

class Factorial {
  static solve (num) {
    if(num === 0) return 1;
    else return num * Factorial.solve(num - 1);
  }
}

console.log(Factorial.solve(5))

export default Factorial;

8
2017-10-31 06:17


origen


Respuestas:


La forma más fácil de comenzar es usar un programar.

Primero instalemos nuestras dependencias:

$ npm install --save-dev babel-cli babel-preset-es2015

Luego agrega un build script a su package.json que ejecuta Babel: (esto es importante porque usará su versión local de babel-cli en lugar de uno globalmente instalado)

"build": "babel input.js"

Tu package.json debería verse así:

{
  "name": "my-module",
  "devDependencies": {
    "babel-cli": "^6.x.x",
    "babel-preset-es2015": "^6.x.x"
  },
  "scripts": {
    "build": "babel input.js -o compiled.js"
  }
}

Finalmente, quiere actualizar su local .babelrc Me gusta esto:

{
  "presets": ["es2015"]
}

Entonces corres npm run build y estás listo para irte

Además, ¿la CLI de Babel 6 tiene una opción global de .babelrc? Parece tedioso si tengo que instalar los complementos para cada proyecto que lo requiera ...

Esa es una mala idea, ya que significa que no puede actualizarla sin actualizar cada uno de los códigos de su proyecto. Tener versiones locales significa que es menos probable que ocurra este error potencial.


15
2017-11-01 02:19



Recibí el mismo error, pero mis configuraciones de webpack / babel parecían correctas. Por prueba y error, reemplacé export myFunction con export default myFunction y el error se resolvió


Más tarde, me di cuenta de que la forma correcta de exportar es export {myFunction}. Lo implementé y todo funciona bien.


3
2018-05-28 11:18