2016-06-04 5 views
31

Non capisco cosa sia sbagliato. Ho organizzato altri forum parlando di transpilation e babel. Cosa devo fare? grazie. Node -v: v5.5.0Errore nodo: SyntaxError: importazione di token imprevisto

il mio codice:

import recast from 'recastai' 

e l'errore

(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 
+0

Qual è la vostra versione di nodo? Puoi fornire il tuo codice? – rootatdarkstar

+0

Ho modificato il thread – Stefdelec

+0

Possibile duplicato di [Impossibile eseguire l'app semplice con Koa v2] (http://stackoverflow.com/questions/37529156/cant-run-simple-app-with-koa-v2) – gevorg

risposta

28

importazioni ES6 sono una caratteristica di recente introduzione e l'attuale versione stabile del Nodo non li supporta ancora. Node.js issue tracker ha un open issue per questo - ma finché V8 e Node non supportano questa funzionalità, sarà necessario utilizzare un transpiler (il più popolare è babel) per poter utilizzare le importazioni.

Per provare rapidamente la transpilation, babel fornisce un REPL basato sul web. This one dimostra che il tuo codice viene transpiled.

Il babel project homepage indica le risorse pertinenti per iniziare con Babel e integrarlo con il flusso di lavoro di sviluppo.

Per la configurazione più semplice, visitare questo setup page e selezionare CLI nella sezione integrata di Babel.

coinvolge Questo fondamentalmente tre semplici passaggi:

  1. Installare babel-cli: npm install --save-dev babel-cli babel-preset-es2015
  2. Crea .babelrc file di configurazione: echo '{ "presets": ["es2015"] }' > .babelrc
  3. Utilizza il modulo installato per transpile il codice sorgente: ./node_modules/.bin/babel src -d lib

La suddetta pagina di configurazione illustra anche come aggiungere uno script npm per semplificare l'ultimo passo. In alternativa puoi integrare babel con l'editor o la catena di build in modo che i tuoi file vengano automaticamente compilati in base alle modifiche.

+0

Inoltre, è necessario: npm installare babel-preset-es2015 – jbsmoove

1

Usa babel ultimi preset

  • installare l'ultimo preset yarn add --dev babel-preset-latest

  • Creare .babelrc e aggiungere il seguente { "presets": ["latest"] }

  • eseguire lo script npx babel-node yourscript.js

  • O nel file package.json aggiungere

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

0

Nel caso in cui non si voglia trattare con babele. Questo ha funzionato per me.

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

Se si utilizza PM2, attenersi alla seguente procedura:

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