2015-09-02 16 views
47

Sto provando ad eseguire il server backend node.js. Ho ricevuto l'errore unexpected reserved word durante l'importazione nel file Node.js.imprevisto parola riservata import in node.js

Le righe nel file core.module.js è:

'use strict'; 
import lodashMixins from './lodashMixins.js' 
... other imports and configurations ... 

Lancio semplice comando: node core.module.js

Non è raro errore, ma di solito accade con altre biblioteche. Non ho visto la soluzione per Node.js. Come dovrei risolvere questo? Sto usando Windows Server.

Modifica: Ho scoperto che è ES6, ma come posso avviarlo? Sembra un back-end per l'applicazione, ma non ho idea di quale comando dovrei usare per avviarlo senza errori.

+1

puoi usare qualcosa come "babele". Una domanda correlata [collegamento] (http://stackoverflow.com/questions/30773756/is-it-okay-to-use-babel-node-in-production) – Sami

risposta

30

La parola chiave import fa parte di modules feature in ECMAScript 2015, insieme a export e alcune altre specifiche.

Attualmente non è implementato in modo nativo in NodeJS, nemmeno sulla versione più recente (v0.12.7), né è supportato nel "più amichevole" fork iojs ES2015.

È necessario utilizzare un transpiler per farlo funzionare.

[modifica] non è ancora supportato nell'ultima versione (v5.8) nonostante l'esistenza di un flag --harmony_modules, che è does nothing. La tua migliore corsa è quello di utilizzare babel, come spiegato here e here

+0

È un progetto in outsourcing, quindi è stato creato ed eseguito sul loro lato in qualche modo. Come posso trovare transpilers? Ho provato a cercare in tutto il progetto per "babel" o "transpiler", ma non ho trovato nulla. Potrei pubblicare il codice completo di core.module, se potesse dare un indizio. Penso di poterlo avviare senza modificare il codice, ma non so come. – Dracontis

+4

Allora perché non chiedi a LORO? – Amit

+0

Può anche essere che lo stanno eseguendo sotto fork NodeJS che funziona con SpiderMonkey. – ghaiklor

48

import è una parte di ECMAScript 2015 (ES6) standard e come Amit di cui sopra non è attualmente implementata nativamente in Nodejs.

Così si può utilizzare come transpiler babel per eseguire lo script es6

npm install babel

Un esempio in base a questo answer

app.js

import {helloworld,printName} from './es6' 
helloworld(); 
printName("John"); 

es6.js

module.exports = { 
    helloworld: function() { console.log('hello world!'); }, 
    printName: function(name) { console.log(name); } 
} 

e l'utilizzo di require hook in start.js

require("babel/register"); 
var app = require("./app.js"); 

e iniziare la vostra applicazione come

node start.js 

EDIT La risposta di cui sopra è stata base su babel v5.8.23. Per babel >= v6

Utilizzare require hook in start.js come

require('babel-core/register'); 
require("./app.js"); 

Inoltre, le trasformazioni non sono abilitati per impostazione predefinita. Quindi sarà necessario installare un preset. In questo caso utilizzare es2015

npm install babel-preset-es2015 

e utilizzarlo in un file nella cartella principale .babelrc

{ 
    "presets": ["es2015"] 
} 
+0

Nel tuo esempio è _app.js_ e _server.js_ dovrebbe essere la stessa cosa? – jpierson

+0

se questo non funziona in qualche modo, quindi semplicemente ripristinare la dipendenza che si sta rompendo al numero di versione precedente. Nel mio caso è il modulo http-master. – jeevs

+0

require ('babel-core/register'); – Foreever

2

mi sono imbattuto in questo problema come installo manualmente uno qualsiasi di questi strumenti al di fuori di Visual Studio. Ma Visual Studio viene fornito con più strumenti da riga di comando open source utilizzati nei moderni flussi di lavoro di sviluppo web. Ecco come si può dire Visual Studio per utilizzare la stessa versione che avete installato manualmente

Vai su Strumenti -> Opzioni -> Progetti e soluzioni -> Strumenti Web esterno

  • impostare la variabile d'ambiente PATH globale prima il percorso interno, puoi semplicemente usare le frecce in alto a destra per cambiare l'ordine.

o

  • primo luogo, trovare l'installazione Node.js hai già e si utilizza nella riga di comando. Per impostazione predefinita, Node.js 0.12.7 viene installato su "C: \ Programmi \ nodejs". Aggiungi questa voce in cima al percorso della directory node.js per forzare Visual Studio a utilizzare quella versione invece
Problemi correlati