Vraag Knooppuntfout: SyntaxError: Onverwachte tokenimport


Ik begrijp niet wat er mis is. Ik controleerde op andere forums over transpilatie en babel. Wat moet ik doen?

node -v
v5.5.0

mijn code:

import recast from 'recastai'

en de fout

(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

44
2018-06-04 19:27


oorsprong


antwoorden:


ES6-import is een recent geïntroduceerde functie en de huidige stabiele versie van Node ondersteunt deze nog niet. Node.js issue tracker heeft een open probleem hiervoor - maar totdat V8 en Node ondersteuning voor deze functie toevoegen, moet je een transponder gebruiken (meest populaire is dat Babel) om invoer te kunnen gebruiken.

Voor het snel uitproberen van transpilatie biedt babel een web-gebaseerde REPL. Deze laat zien dat je code is verwerkt.

De startpagina van babel project  verwijst naar de relevante bronnen om met Babel aan de slag te gaan en deze te integreren met uw ontwikkelworkflow.

Voor de eenvoudigste configuratie, bezoek dit instellingenpagina en selecteer CLI in de sectie Babel built-ins.

Dit omvat in feite drie eenvoudige stappen:

  1. Installeer babel-cli: npm install --save-dev babel-cli babel-preset-es2015
  2. creëren .babelrc configuratiebestand: echo '{ "presets": ["es2015"] }' > .babelrc
  3. Gebruik de geïnstalleerde module om uw broncode over te dragen: ./node_modules/.bin/babel src -d lib

De eerder genoemde opstartpagina illustreert ook hoe een npm-script kan worden toegevoegd om de laatste stap te vereenvoudigen. Als alternatief kunt u babel integreren met uw editor of keten bouwen, zodat uw bestanden automatisch worden gecompileerd bij verandering.


34
2018-06-04 19:53



1) Installeer de nieuwste presets

yarn add --dev babel-preset-latest

2) Maken .babelrc en voeg het volgende toe

{
    "presets": ["latest"]
}

3) Voer uw script uit

npx babel-node yourscript.js

Of in jouw package.json bestand toevoegen

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

3
2017-11-03 00:20



In het geval u niet wilt omgaan met babel. Deze werkte voor mij.

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

1
2018-01-24 10:03



Dank aan a NodeJS-verbeteringsvoorstel we hebben een pad voorwaarts. Je kunt gebruiken @standard-things/esm

Vind de aankondiging hier Gewoon rennen

npm i --save @std/esm

In uw vandaag verpakt.


0
2017-12-19 04:48



Ermee beginnen

Eerst zullen we babel-cli installeren.

$ npm install --save-dev babel-cli

Samen met een aantal presets.

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

package.json:

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

rennen:

$ npm start

Kijken naar bestandswijzigingen met nodemon:

We kunnen ons npm-startscript verbeteren met nodemon.

$ npm install --save-dev nodemon

Dan kunnen we ons npm startscript bijwerken.

package.json:

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

rennen:

$ npm start 

Als je gebruikt PM2, volg dan deze stappen:

$ pm2 start app.js --interpreter babel-node

0
2018-02-21 06:15