2015-05-06 23 views
16

Babel tarafından derlenmiş kodu gördüğümde, eşdeğer görünmüyorlar. module.exports = A (Belki de module.exports.A = A mi?) Eşdeğer değildir exports.A = A için Aslında , eski dönüşümler,ES6 `ihracat sınıfı A`,` module.exports = A `değerine eşit mi?

Yani bir ES6 tarzı module.export = var mı? Ya da sözdizimi hala ES6'da kalıyor? Ya da bu sözdizimi ES6'da önerilmiyor mu?

cevap

16

kullanabilirsiniz neden birlikte çalışma bölümünde bir açıklama var

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

olarak ihraç edecek

export default class A { 

} 

Ya

class A { 

} 

export default A; 

here.

CommonJS ve ES6 modüllerinin kullanımını teşvik etmek için, module.exports numaralı dışa aktarma ile varsayılan bir dışa aktarma ihraç ederken exports["default"]'a ek olarak ayarlanacaktır.

"use strict" 

class ClassName { 
// class code 
} 

module.exports = ClassName 

Kaydet yukarıdaki dosyası:

5

Sen Düğüm v6 aşağıdaki kullanabilirsiniz eklemek gerekir modules.export=A

için export default A desteklenmez ClassName.js

başka bir dosya Test.js bunu aktarmak için:

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

daha Bilgileri:

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