什么是模块,什么是包。
模块怎么用,包怎么用。
模块
模块,一个文件就可以是一个模块。但是也可以构建大型的项目,npm即是这样。
exports是模块对外公开的接口,require是从外部获取一个模块的接口。
单次加载
无论require加载多少次,都是那个它。
require 方法的加载规则
- 优先从缓存中加载
- 核心模块
- 路径形式的模块
- 第三方模块
覆盖exports
想把某个对象封装到模块中,就使用module.exports代替exports.?;这样在外部引用该模块时,引用的是?对象,而不是原先的exports。
注:exports仅仅是一个空对象{},专门用来声明接口;本质即是为模块闭包的内部建立一个有限的访问接口;而且只能通过module.exports来改变访问接口。
包
包含package.json文件的文件夹,即是一个最为简答的包。bin、test、lib、doc...
参考资料:
Nodejs学习 3 -- module模块系统与npm包管理
nodejs之Nodejs 包与 NPM 第三方模块安装和 package.json 以及 CNPM
深入浅出Node.js 第二章模块机制
Node.js开发指南 第三章 3.3模块和包