在Node.js 中,会将某个独立的功能封装起来,用于发布、更新、依赖管理和进行版本控制。Nodejs 根据CommonJS规范实现了包机制,开发了NPM包管理工具,用来解决包的发布和获取需求。
Node.js的包和模块并没有本质的不同,包是在模块的基础上更进一步的组织JavaScript代码的目录。Nodejs 包和模块的关系如下图所示:
图中可以看出,一个包中应该有一个出口模块,用于向外部开放接口,使用者只需要拿到出口模块,而不用关心包中的其他内容。
Node,js的包基本遵循 CommonJS规范,规范的包目录结构如表 1 所示。
在实际开发中,当某个包需要发布到网上,供他人使用时,最好遵守 CommonJS规范Nodejs 包中包含JSON格式的包说明文件 package.jison。在规范中 package.json 文件好比一个产品说明书,它的优势在于当开发者拿到一个第三方包文件时,可以对包的信息一目了然,package.json文件中用于描述信息的属性如表2所示。
在package.json文件中,属性和值通过JSON字符串的形式进行描述。