Commonjs规范
- 关于CommonJS规范
- 诞生的目的就是为了弥补浏览器没有模块化缺陷
- CommonJS是语言层面的规范,是一个超集,当前主要用于Nodejs
- CommonJS规范规定模块化分为引入(通过rrquire导入其他模块)、定义(任意一个文件就是一个模块,具有独立作用域)、标识符(将模块ID传入require实现目标模块定位)三个部分
- module属性
- 任意js文件就是一个模块,可以使用module属性
- id:返回模块标识符,一般是一个绝对路径
- filename:返回文件模块的绝对路径
- loaded:返回布尔值,表示模块是否完成加载
- parent:返回对象,调用当前模块的模块
- children:返回数组,当前模块要调用的其他模块
- exports:返回当前模块要暴露的内容
- paths:返回不同目录下的node_modules位置
- module.exports 与exports的区别
- 在commonjs规范中只规定了使用module.exports导出数据
- 是nodejs为了方便,给每个模块加了一个exports指向module.exports的内存地址
- 但是不能直接给exports赋值,这样它就指向新的内存地址