Node组织的自己的核心模块,但是第三方模块中,模块与模块之间热然是散列在各地的,相互之间不能直接引用。
在模块之外,包和npm则是将模块联系起来的一种机制。
包组织模块示意图包的出现,一定程度上解决了变量依赖、依赖关系等代码组织性问题,是在模块的基础上进一步组织JavaScript代码。
包的规范定义
包由包结构和包描述文件两个部分组成。
1. 包结构
包实际上是一个存档文件,包结构用于组织包中的各种文件。
完全符合CommonJS规范的宝目录应该包含如下文件:
package.json
: 包描述文件。bin
: 用于可执行二进制文件的目录。lib
: 用于存放JavaScript代码的目录。doc
: 用于存放文档的目录。test
: 用于存放单元测试用例的代码。
2. 包描述文件与NPM
包描述文件(
package.json
)用于表达非代码相关的信息,位于包的根目录下,NPM的所有行为都与包描述文件的字段信息相关。
package.json
文件定义的必须字段:
name
: 包名。它是唯一的。description
: 包简介。version
: 版本号。keywords
: 关键词数组,NPM中主要用来做分类搜索,一个好的关键词数组有利于用户快速找到你编写的包。maintainers
: 包维护者列表。每个维护者由name、emai和web者三个属性组成。NPM通过它来进行权限认证。
package.json
文件定义的可选字段:
scripts
: 脚本说明对象。它主要被包管理器用来安装、编译、测试和卸载包。dependencies
: 使用当前包所需要依赖的包列表(生产环境)。NPM会通过这个属性自动加载依赖的包devDependencies
: 开发环境依赖包列表。NPM会通过这个属性自动加载依赖的包
网友评论