I'm writing a "class" in node
// mymodule/index.js
function MyClass() {}
MyClass.prototype.method1 = function() {..}
usually I do
module.exports = MyClass
but I want my class available for both syntax
var MyClass = require('mymodule')
and
import {MyClass} from 'mymodule'
Which is the correct way to do it?
Object manipulation is less time-consuming in ES6. 7. In ES5, both function and return keywords are used to define a function. An arrow function is a new feature introduced in ES6 by which we don't require the function keyword to define the function.
ES6. Definition. ES5 is the fifth edition of the ECMAScript (a trademarked scripting language specification defined by ECMA International) ES6 is the sixth edition of the ECMAScript (a trademarked scripting language specification defined by ECMA International).
With the help of ES6, we can create modules in JavaScript. In a module, there can be classes, functions, variables, and objects as well. To make all these available in another file, we can use export and import. The export and import are the keywords used for exporting and importing one or more members in a module.
As far as writing an export that is compatible for both ES5 and ES6, Babel already takes care of that for you. (As communicated in the comments to your question. I'm only clarifying for those who got lost in the dialog.)
module.exports = MyClass
will work with both var MyClass = require('mymodule')
and import MyClass from 'mymodule
However, to be clear, the actual syntax you asked about:
import {MyClass} from 'mymodule'
means something different from
import MyClass from 'mymodule'
For the latter, you would have to export it as: module.exports.MyClass = MyClass
, and for ES5 modules it would have to required as var MyClass = require('mymodule').MyClass
Both ways are correct, but try to import in es6 like this without the brackets:
import MyClass from 'mymodule'
Otherwise you would have to export your function like this:
module.exports.MyClass = MyClass
and than import it like this:
import { MyClass } from 'mymodule'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With