2015-08-13 11 views
7

Per poter utilizzare ES6, passiamo la bandiera armonia nella linea di comandoposso specificare ES6 all'interno del file js nodo

node --harmony myscript.js 

C'è un modo per fare questo dall'interno del file, ad esempio use harmony?

#! /usr/bin/node 
use harmony 

class MyScript { 
    constructor (options) { 
     this.options = options; 
    } 
    get options() { 
     return this.options 
    } 
} 
+1

No, tuttavia, è possibile fare qualcosa di simile con Babel, ma non influirà sul codice che non è 'richiesto' perché fa la sua cosa usando un hook di richiesta. –

+0

'#!/usr/bin/node --harmony'? – Bergi

risposta

4

Se la vostra intenzione è quella di farlo solo in modo che è possibile eseguire lo script direttamente come ./myscript.js si potrebbe usare questo:

#!/bin/sh 
':' //; exec node --harmony "$0" "[email protected]"; 

class MyScript { 
    constructor (options) { 
     this.options = options; 
    } 
    get options() { 
     return this.options 
    } 
} 

ho ottenuto il trucco Poliglotta dal blog Obscure Javascript.

Se la tua intenzione è quella di essere in grado di avviare un altro script senzaessere in grado di require questo script, quindi questo trucco non funzionerà.

+0

Volevo essere in grado di richiedere gli script es6, quindi penso che finché il mio file iniziale usa questo trucco dovrebbe funzionare bene. – Shanimal

+1

@Shanimal Sì, finché il punto di ingresso inizia il nodo con '--harmony' ogni script richiesto da loro lo userà. – Paulpro

+0

Sembra '#!/usr/bin/node --harmony' funziona anche. C'è una differenza? – Shanimal