2015-05-06 9 views
16

Kiedy widzę skompilowany kod Babel, nie wydają się one być równoważne. Właściwie byłe transformaty exports.A = A, co nie jest równoznaczne z module.exports = A (Może to module.exports.A = A?)Czy klasa eksportowa A6 ES6 jest odpowiednikiem `module.exports = A`?

Więc jest tam styl ES6 module.export =? Lub składnia pozostaje nadal w ES6? Czy ta składnia nie jest już zalecana w ES6?

Odpowiedz

16

Można użyć

export default class A { 

} 

Albo

class A { 

} 

export default A; 

Który będzie eksportować jako

exports["default"] = A; 
module.exports = exports["default"]; 

Jest wyjaśnienie dlaczego w sekcji międzyoperacyjne here.

Aby zachęcić do korzystania z modułów CommonJS i ES6, podczas eksportowania domyślnego eksportu bez innych eksportów module.exports zostanie ustawiony oprócz exports["default"].

2

babel6 nie jest obsługiwana export default A do modules.export=A

należy dodać plugin

5

można użyć następujących w Węzeł v6:

"use strict" 

class ClassName { 
// class code 
} 

module.exports = ClassName 

Zapisz powyższy plik jako ClassName.js

Aby zaimportować go w innej Test.js plików:

"use strict" 
var ClassName= require('./ClassName.js'); 
var obj = new ClassName(Vars . . .); 

Aby uzyskać więcej informacji:

Here's an article on exporting classes from modules in Node v6

Powiązane problemy