Node.js ES6 how to export class from module?

kubal5003 picture kubal5003 · May 23, 2016 · Viewed 22.6k times · Source

I'm trying to export an ES6 class from a CommonJS module in Node.js 6.2.0

class MyClass{
    //class contents here
}

exports = MyClass;

Then import it in another module:

var MyClass = require('/path/to/module.js')
var instance = new MyClass();

However I'm getting the following exception:

TypeError: MyClass is not a constructor

How can I properly do it?

Please note that I'm not using Babel/Tranceur it's pure JS as implemented in the latest Node 6.2.0 which according to Kangax implements ES6 in 93%.

//Edit: this is not a problem with exports vs module.exports. While using exports alone I'm getting some object with __proto__ set.

Answer

Bergi picture Bergi · May 23, 2016

You will need to assign to module.exports, not the local exports variable.