2015-08-13 35 views
7

Aby korzystać ES6 mijamy flagę harmonii w wierszu poleceńmogę określić ES6 wewnątrz węzła pliku js

node --harmony myscript.js 

Czy istnieje sposób, aby to zrobić od wewnątrz pliku, takie jak use harmony?

#! /usr/bin/node 
use harmony 

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

Nie, jednak można zrobić coś podobnego z babel, ale nie wpłynie to na kod, który nie jest "wymagany", ponieważ robi to za pomocą haka wymagającego. –

+0

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

Odpowiedz

4

Jeśli twoim zamiarem jest, aby to zrobić tak, że można uruchomić skrypt bezpośrednio jak ./myscript.js można użyć tego:

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

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

Mam sztuczkę poliglotką z bloga Obscure Javascript.

Jeśli Twoim zamiarem jest mieć możliwość uruchomienia kolejnego skryptu bez uzyskania tego --harmony, być w stanie wykonać ten skrypt, require, to sztuczka nie zadziała.

+0

Chciałem móc wymagać skryptów es6, więc myślę, że dopóki mój początkowy plik użyje tej sztuczki, powinien działać dobrze. – Shanimal

+1

@Shanimal Tak, o ile punkt początkowy zaczyna się węzłem z '--harmony', każdy skrypt wymagany od tego będzie go używał. – Paulpro

+0

Wygląda jak "#!/usr/bin/node --harmony' również działa. Czy istnieje różnica? – Shanimal