web-dev-qa-db-fra.com

Babel 6 CLI: exportation inattendue de jetons?

J'essaie de faire fonctionner Babel à travers sa CLI en utilisant babel-node mais je continue à avoir l'erreur Unexpected token export. Je comprends que Babel 6 ne concerne que les plugins et que je dois le configurer via .babelrc, mais cela ne semble pas fonctionner correctement. 

Donc, voici mes questions:

  • Devrais-je utiliser le plugin syntax-export-extensions ? J'ai aussi essayé d'utiliser la méthode alternative qui est en configurant le plugin avec package.json mais toujours pas de chance. 
  • De plus, la CLI de Babel 6 dispose-t-elle d'une option globale .babelrc? Cela semble fastidieux de devoir installer les plugins pour chaque projet le nécessitant ...

Pour ceux qui sont curieux de savoir ce que j'essaie d'exporter, voici le cours:

'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;
9
iwatakeshi

Le moyen le plus simple de commencer est d’utiliser un preset .

Commençons par installer nos dépendances:

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

Ajoutez ensuite un script build à votre package.json qui exécute Babel: (cela est important car il utilisera votre version locale de babel-cli au lieu d'une version installée globalement)

"build": "babel input.js"

Votre package.json devrait ressembler à ceci:

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

Enfin, vous voulez mettre à jour votre .babelrc local comme ceci:

{
  "presets": ["es2015"]
}

Ensuite, vous exécutez npm run build et vous êtes prêt à partir.

De plus, la CLI de Babel 6 dispose-t-elle d'une option globale .babelrc? Cela semble fastidieux de devoir installer les plugins pour chaque projet le nécessitant ...

C'est une mauvaise idée car cela signifie que vous ne pouvez jamais le mettre à jour sans mettre à jour chacun des codes de vos projets. Avoir des versions locales signifie que cette erreur potentielle est moins susceptible de se produire.

16
James Kyle

J'ai reçu la même erreur, mais mes configurations Webpack/babel semblaient correctes. Par essais et erreurs, j'ai remplacé export myFunction par export default myFunction et l'erreur a été résolue.


Plus tard, j'ai réalisé que la manière correcte d'exporter était export {myFunction}. Je l'ai mis en œuvre et tout fonctionne bien.

4
user3405291