2016-11-23 6 views

答えて

6

exportsグローバルを上書きしていて、更新していないためです。あなたとあなたのコードを交換する場合:

exports.z = function() { 
    console.log('aZ'); 
}; 

それはあなたが実際の輸出オブジェクトにzを追加しているので、動作します。あなたはdocsを見れば


、あなたが表示されます。

参照を入力する短いmodule.exportsはします。あなたがexports = something、あなたが実際に変更されていないmodule.exportsはと輸出を交換する場合は今

var module = { 
    exports: { /* some export stuff */ } 
}; 

var exports = module.exports; 


は、だから、このような状況を想像することができます。 commonjsと

+0

は 'module.exports = {}'を使用してdをシミュレートすることができます'es6'のefault(名前なし)のエクスポート? –

1

あなたの代わりにmodule.exportsを使用する必要があります。その後、

module.exports = { 
    z: function() { 
     console.log('aZ'); 
    } 
}; 

とを:

require('./a').z(); 
1

それは初心者のための紛らわしいですが、少し異なる動作をいくつかの輸出のフォーマットがあります。

あなたが言うように、オブジェクト全体をエクスポートする場合、あなたはそのような全体のエクスポートを置き換えることができます。

module.exports = { z: function(){}}; 

あなたはまた、単に輸出へのものを添付することができますが

直接

exports.z = function(){} 
オブジェクト最後に、ES6互換のバージョンを使用している場合は、

export default { z: function(){}}; 
関連する問題