如何在 RequireJS 中同时使用默认导出和正常导出?
How to use both default export and normal exports in RequireJS?
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'
});
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'
});