理解包的概念
一、什么是包
包可以理解是模块更深一步的抽象,由一些模块按照一定的规范来组织成一个目录
包类似于 web 中的 jQuery、zepto等一些类库,
利用 CommonJS 规范将一些功能进行封装起来,用来发布、更新、依赖管理和版本控制,从而形成的一套包管理机制
主要用来解决在 node 开发中发布一些通用性的包以及获取第三方包来满足业务的需求
二、包的规范
1. 包的根目录下必须有 package.json 文件
2. 二进制文件应该放在 bin 目录下
3. JavaScript 代码应该放在 lib 目录下
4. 文档应该在 doc 目录下
5. 单元测试应该自 test 目录下
三、package.json 主要属性介绍
- name
- 包的名称,是必填字段
- 不能包含大写字母
- 不要使用和 Node 核心模块一样的名称
- name 可能会成为 url 的一部分,不能含有url非法字符,不能以"_"或"."开头
- version
- 版本字段,是必填选项
- 包内容的更改和包版本的更改是同步的。
- verion的格式必须正确(符合semver规则)
- main
- 指定了程序的主入口文件。
- scripts
- 是一个对象,指定了项目的生命周期个各个环节需要执行的命令。
- description:
- 包的简要说明,一般是包的作用,方便别人了解与搜索
- keywords:
- 关键字数组,方便别人搜索到该模块
- homepage:
- 项目主页url
- license
- 包的许可证,以便人们知道如何使用它,以及您对其进行的任何限制
- dependencies
- 指定了项目运行所依赖的模块
- devDependencies
- 指定项目开发所需要的模块
- author、 contributors、maintainers
- 和开发者、贡献者、贡献者相关的属性
- "author"是一个码农, "contributors"是一个码农数组,contributors:贡献者数组,"person"是一个有一些描述属性的对象,
- bugs
- 提交bug的地址,可以是网址或者电子邮件地址
其他:参考地址