webentwicklung-frage-antwort-db.com.de

Knotenfehler: SyntaxError: Unerwarteter Tokenimport

Ich verstehe nicht was falsch ist. Ich habe in anderen Foren nach Transpilierung und Babel gesucht. Was muss ich tun?

node -v
v5.5.0

mein code:

import recast from 'recastai'

und der Fehler

(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
51
Stefdelec

ES6-Importe sind eine kürzlich eingeführte Funktion, die von der aktuellen stabilen Version von Node noch nicht unterstützt wird. Der Node.js Issue-Tracker hat ein open-Problem , aber bis V8 und Node Unterstützung für diese Funktion hinzufügen, benötigen Sie einen Transpiler (der beliebteste ist babel ), um verwenden zu können Einfuhren.

Um die Transpilierung schnell auszuprobieren, bietet babel eine webbasierte REPL an. Dieses demonstriert, wie Ihr Code transpiliert wird.

Die Homepage des babel-Projekts zeigt auf die relevanten Ressourcen, um mit Babel zu beginnen und in Ihren Entwicklungsworkflow zu integrieren. 

Besuchen Sie diese Setup-Seite , und wählen Sie im Babel-Built-Ins-Bereich die Option CLI aus. 

Dies umfasst im Wesentlichen drei einfache Schritte: 

  1. Installiere babel-cli: npm install --save-dev babel-cli babel-preset-es2015
  2. .babelrc Konfigurationsdatei erstellen: echo '{ "presets": ["es2015"] }' > .babelrc
  3. Verwenden Sie das installierte Modul, um Ihren Quellcode zu transpirieren: ./node_modules/.bin/babel src -d lib

Auf der oben genannten Setup-Seite wird auch gezeigt, wie Sie ein npm-Skript hinzufügen, um den letzten Schritt zu vereinfachen. Alternativ können Sie babel in Ihren Editor oder Ihre Build-Kette integrieren, sodass Ihre Dateien bei Änderungen automatisch kompiliert werden. 

40
lorefnon

Falls Sie nicht mit Babel umgehen wollen. Dieser hat für mich gearbeitet.

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

1) Installieren Sie die neuesten Voreinstellungen

yarn add --dev babel-preset-latest

2) Erstellen Sie .babelrc und fügen Sie Folgendes hinzu

{
    "presets": ["latest"]
}

3) Führen Sie Ihr Skript aus

npx babel-node yourscript.js

Oder in deine package.json-Datei einfügen

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

Es ist sehr einfach, dieses Problem zu lösen, import ist ES6-Syntax, und Node hat Schwierigkeiten bei der Unterstützung. Sie müssen Babel als Transpiler hinzufügen, zur package.json gehen und Folgendes hinzufügen

Fügen Sie zunächst ein Script-Tag hinzu, um babel zu verwenden, während Sie den JS-Code für das Transpiling ausführen.

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

Fügen Sie dann Folgendes als Babel-DevDependencies hinzu

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

danach müssen Sie auch die Babel-Voreinstellungsdatei konfigurieren. Erstellen Sie daher im Stammverzeichnis die Datei .babelrc und legen Sie die Voreinstellungen wie folgt fest

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

Vergiss nicht, am Ende einen npm install zu machen

1
Naved Ahmad

Fertig machen

Zuerst installieren wir babel-cli.

$ npm install --save-dev babel-cli

Zusammen mit einigen Voreinstellungen.

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

package.json:

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

lauf:

$ npm start

Dateiänderungen mit nodemon ansehen:

Wir können unser npm-Startskript mit nodemon verbessern.

$ npm install --save-dev nodemon

Dann können wir unser npm-Startskript aktualisieren.

package.json:

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

lauf:

$ npm start 

Wenn Sie pm2 verwenden, gehen Sie folgendermaßen vor:

$ pm2 start app.js --interpreter babel-node
0
KARTHIKEYAN.A

Dank eines NodeJS-Verbesserungsvorschlags haben wir einen Weg nach vorne. Sie können @standard-things/esm verwenden.

Die Ankündigung finden Sie hier Einfach ausführen 

npm i --save @std/esm

In Ihrem heute verpackt.

0
Evan Carroll