概念:包是在模块基础上更深一步的抽象,将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。
Node.js的包是一个目录,其中包含一个JSON格式的包说明文件package.json,严格符合CommonJS规范的包应该具备以下特征:
package.json必须在包的顶层目录下;
二进制文件应该在bin目录下;
JavaScript文件应该在lib目录下;
文档应该在doc目录下;
单元测试应该在test目录下;
1.作为文件夹的模块:
模块与文件是一一对应的,文件不仅可以是JavaScript代码或二进制文件(c++编译后的模块),还可以是一个文件夹。最简单的包,就是一个作为文件夹的模块。
例程(跳过了第一步):
文件:
/somepackage/package.json
{ "main":"./lib/interface.js" }
nodejs在调用某个包时,会首先检查package.json文件的main字段,建议作为包的接口模块,如果不存在,会尝试寻找index.js或index.node作为包的接口。
/somepackage/lib/interface.js
exports.hello = function(){ console.log('Hello'); };
/getpackage.js