2015-05-06 2 views
16

Quando vedo il codice compilato da Babel, non sembrano equivalenti. In realtà, gli ex trasformazioni a exports.A = A, che non è equivalente a module.exports = A (Forse è module.exports.A = A?)Es6 `classe di esportazione A` equivalente a` module.exports = A`?

Quindi non v'è uno stile ES6 module.export =? O la sintassi rimane ancora in ES6? O che la sintassi non è più raccomandata in ES6?

risposta

16

È possibile utilizzare

export default class A { 

} 

O

class A { 

} 

export default A; 

che esporterà come

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

C'è una spiegazione per questo nella sezione di interoperabilità here.

Per incoraggiare l'uso di moduli CommonJS ed ES6, quando si esporta un'esportazione predefinita senza altre esportazioni, module.exports verrà impostato in aggiunta a exports["default"].

2

babel6 non è supportata export default A-modules.export=A

si dovrebbe aggiungere un plugin

5

È possibile utilizzare il seguente in nodo V6:

"use strict" 

class ClassName { 
// class code 
} 

module.exports = ClassName 

Salvare il file di cui sopra come ClassName.js

Per importare in un altro file test.js:

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

Per ulteriori informazioni:

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