Closed hapiman closed 7 years ago
module.exports
初始值为一个空对象 {}
exports
默认指向的module.exports
的引用require()
返回的是 module.exports
而不是 exports
最初,module.exports
等于exports
, 但是给module.exports
附上新值的时候,module.exports
指向了另外的对象,需要使用exports = module.exports
将exports
指向新的对象
即 exports=module.exports=someObj
等于
module.exports=someObj; exports=module.exports
在node
文件中使用
exports=module.exports=someObj
exports.func1 = function(){}
exports.func2 = function(){}
import {bar} from './foo';
bar();
// foo.js module.exports = { bar() {} }
- works
```js
import foo from './foo';
foo.bar();
// foo.js
export default {
bar() {}
}
import {bar} from './foo';
bar(); //会自动去找module.exports = {bar(){}}
// foo.js export default { bar() {} }
---
```js
export default {
bar() {}
}
其实等价于
exports: {
default: {
bar() {}
}
}
使用 import foo from './foo';
其实得到
{
default: {
bar() {}
}
}
会自动去找export default = {}
关联使用
module.exports
和require
export default
和import
否则webpack
打包的时候会出现Cannot assign to read only property 'exports' of object '#<Object>'
错误在前端使用这种通用的方式