问题描述
lib.js
exports.value = 'Some value'
module.exports = {
libraryName: '@CoolLibrary'
}
main.js
const { value } = require('./lib')
console.log('Value is '.concat(value))
当我编写上述代码时,将输出视为 Value is undefined
。但是,我已将库中的 value
导出为 Some value
。
我好像遗漏了什么。
在 Node.js 中同时使用 module.exports
和 export.[value]
导出的正确方法是什么?
解决方法
exports
是 module.exports
的别名,所以当你这样做时
module.exports = {
libraryName: '@CoolLibrary'
}
您完全替换了刚刚分配给 value
的对象,使 value
不可用。
这是不替换 exports
对象的一个很好的理由;相反,只需添加到它:
exports.value = 'Some value';
exports.libraryName = '@CoolLibrary';
或者如果你喜欢:
Object.assign(exports,{
value: 'Some value',libraryName: '@CoolLibrary'
});