it-swarm.com.de

Babel 6 CLI: Unerwarteter Token-Export?

Ich versuche, Babel über die CLI mit babel-node auszuführen, erhalte aber weiterhin den Unexpected token export-Fehler. Ich verstehe, dass es in Babel 6 nur um Plugins geht und ich das Plugin über .babelrc setzen muss, aber es scheint nicht richtig zu funktionieren. 

Hier sind meine Fragen:

  • Sollte ich das syntax-export-extensions-Plugin verwenden? Ich habe auch versucht, die alternative Methode zu verwenden, nämlich das Setzen des Plugins durch package.json , aber immer noch kein Glück. 
  • Verfügt die CLI von Babel 6 auch über eine globale .babelrc-Option? Es scheint langweilig zu sein, wenn ich die Plugins für jedes Projekt installieren muss, das es benötigt ...

Für diejenigen, die neugierig auf das sind, was ich zu exportieren versuche, ist hier die Klasse:

'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

Der einfachste Weg, um loszulegen, ist die Verwendung einer Voreinstellung .

Lassen Sie uns zunächst unsere Abhängigkeiten installieren:

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

Fügen Sie Ihrem package.json dann ein build-Skript hinzu, das Babel ausführt: (Dies ist wichtig, da Ihre lokale Version von babel-cli anstelle einer global installierten verwendet wird.)

"build": "babel input.js"

Ihr package.json sollte so aussehen:

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

Schließlich möchten Sie Ihren lokalen .babelrc folgendermaßen aktualisieren:

{
  "presets": ["es2015"]
}

Dann starten Sie npm run build und Sie können loslegen.

Verfügt das CLI von Babel 6 auch über eine globale .babelrc-Option? Es scheint langweilig zu sein, wenn ich die Plugins für jedes Projekt installieren muss, das es benötigt ...

Das ist eine schlechte Idee, da Sie sie niemals aktualisieren können, ohne jeden einzelnen Code Ihres Projekts zu aktualisieren. Bei lokalen Versionen ist es weniger wahrscheinlich, dass dieser mögliche Fehler auftritt.

16
James Kyle

Ich habe den gleichen Fehler erhalten, aber meine Webpack/Babel-Konfigurationen sahen korrekt aus. Durch Versuch und Irrtum habe ich export myFunction durch export default myFunction ersetzt und der Fehler wurde behoben.


Später erkannte ich, dass der korrekte Exportweg export {myFunction} ist. Ich habe es implementiert und alles funktioniert gut.

4
user3405291