Shanimal
Shanimal

Reputation: 11718

Can I specify es6 inside node js file

In order to use es6, we pass the harmony flag in the command line

node --harmony myscript.js

Is there a way to do this from inside the file, such as use harmony?

#! /usr/bin/node
use harmony

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

Upvotes: 7

Views: 493

Answers (1)

Paul
Paul

Reputation: 141839

If your intention is to do this just so that you can run the script directly like ./myscript.js you could use this:

#!/bin/sh
':' //; exec node --harmony "$0" "$@";

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

I got the polyglot trick from the blog Obscure Javascript.

If your intention is to be able to have another script started without --harmony be able to require this script, then this trick will not work.

Upvotes: 4

Related Questions