Module
2019-04-06 本文已影响0人
cutecat
commonJS规范规定每一个模块都有一个Module对象,大约是
{
id: 模块标识符,
filename:带有绝对路径的模块文件名,
parent: 引用模块的父模块(对象),
children: 该模块引用的子模块数组,
loaded: Boolean,模块是否完成加载情况,
exports: 对外输出的接口
}
引申:module.exports && exports(区别于es6的export)
module.exports是commonJs规范定义的模块输出接口
exports是node为每个模块提供的变量,exports = module.exports
exports变量指向module.exports,如果是对象,那么可以用exports和module.exports,如果是个数值,那么就只能用module.exports,exports不是module.exports的引用
⚠️ 不能直接赋值给exports变量,不然就切断了module.exports和exports的联系,不能正常输出