2015-10-15 15 views
9

Ho il seguente script in un nodo:esportazione classe ES6 in Nodo 4.x parola riservata imprevisto

"use strict"; 

class Whatever { 
    constructor() { 
     console.log("I'm in the constructor!"); 
    } 
} 

export default Whatever; 

ottengo Unexpected reserved word quanto riguarda export.

Cosa mi manca qui? Come si specifica una definizione di classe in un file esterno e includerla/richiederla?

+2

Non credo moduli ES6 sono supportati in Nodo di default, sono in esecuzione questo con il '--harmony',' --harmony_modules' bandiera ecc? – adeneo

risposta

7

Node.js non supporta i moduli ES6 predefinita. Dovresti attivarli con il flag --harmony o --harmony_modules. L'impostazione predefinita è la dichiarazione CommonJS (require/module.exports).

modificare il codice per supportare la sintassi CommonJS:

"use strict"; 

class Whatever { 
    constructor() { 
     console.log("I'm in the constructor!"); 
    } 
} 

module.exports = Whatever; 
+0

Come ho detto nella domanda, sto usando il nodo 4. Grazie –

+0

Ah, scusa :) Ho saltato quella parte allora. Aggiornerà la mia risposta – morkro

+0

Grazie ho visto che supportava le classi ES6 e pensavo che fosse il modo giusto per esportare le classi. Non ti rendi conto che potresti usare ancora la vecchia sintassi CommonJS per le classi. Grazie –

2

I moduli ES6 non sono ancora stabili nel nodo, ma è possibile utilizzare --harmony_modules per attivarli. Questo ovviamente non è raccomandato in un ambiente di produzione.

ES6 support in Node 4.x

Problemi correlati