exports 、module.exports的区别

  • exports、module.exports遵守的是CommonJS规范
  • export、export default 是ES的规范

Node 模块遵循的是CommonJS规范,所以Node里使用的是exports 和 module.exports
CommonJS定义的模块分为:模块标识(module)、模块定义(exports)、模块引用(require)

  1. module.exports 初始值为一个空对象 { }
  2. exports 指向的是module.exports 的引用
  3. require 返回的是module.exports 而不是exports
文档解释:
module.exports

exports

即: 为了方便,Node为每个模块提供了一个exports变量,指向module.exports:等同于在每个模块头部有一行这样的命令:

var exports = module.exports

于是可以直接在exports对象上添加方法,表示对外输出的接口,如同在module.exports上添加一样
但如果直接将exports指向另一个变量,就切断了exports和 module.exports之间的联系,require引入的只是module.exports, exports的变化与reqiure引入无关了。

你可能感兴趣的:(exports 、module.exports的区别)