经常使用node
的用户,对于package.json
文件一定不陌生,接下来简单总结下我的使用体验
定义
package.json
位于模块的目录下,用于定义包的属性。
属性
package.json
包含以下属性:
- name:包名(必填)
- version:包的版本号(必填)
- author:包的作者
- main:程序的主入口文件,默认值是模块根目录下面的
index.js
- description:描述
- scripts:脚本
- dependencies:作为依赖安装的 npm 软件包的列表
- devDependencies:作为开发依赖安装的 npm 软件包的列表。
- repository:包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上
- homepage:包的官网 url
- contributors:包的其他贡献者姓名
- keywords:关键字
- license:指定软件包的许可证
- bugs:链接到软件包的问题跟踪器,最常用的是 GitHub 的 issues 页面
- private:私有属性
- engines:设置了此包哪个版本的
Node.js
上运行。 - browserslist:支持哪些浏览器(及其版本)。
详细说明
下面介绍下常用属性的用法:
name
名称必须少于 214 个字符,且不能包含空格,只能包含小写字母、连字符(-)或下划线(_)
不能和 npm 官方仓库上已发布包重名
示例:
"name": "yiqiesuifeng"
author
作者名称,支持以下两种格式:
格式1:
{
"author": "yiqiesuifeng"
}
格式2:
{
"author": {
"name": "yiqiesuifeng",
"email": "yiqiesuifeng@xxx.com",
"url": "https://yiqiesuifeng.cn"
}
}
version
版本号
格式
major.minor.patch
- patch:修复bug,兼容老版本
- minor:新增功能,兼容老版本
- major:新的架构调整,不兼容老版本
规则
version
:必须匹配某个版本,如:1.1.2,表示必须依赖1.1.2版>version
:必须大于某个版本,如:>1.1.2,表示必须大于1.1.2版>=version
:可大于或等于某个版本,如:>=1.1.2,表示可以等于1.1.2,也可以大于1.1.2版本<version
:必须小于某个版本,如:<1.1.2,表示必须小于1.1.2版本<=version
:可以小于或等于某个版本,如:<=1.1.2,表示可以等于1.1.2,也可以小于1.1.2版本:~version
:大概匹配某个版本,如果minor版本号指定了,那么minor版本号不变,而patch版本号任意,如果minor和patch版本号未指定,那么minor和patch版本号任意,如:~1.1.2,表示>=1.1.2 <1.2.0,可以是1.1.2,1.1.3,1.1.4,.....,1.1.n^version
:兼容某个版本,版本号中最左边的非0数字的右侧可以任意,如果缺少某个版本号,则这个版本号的位置可以任意,如:^1.1.2 ,表示>=1.1.2 <2.0.0,可以是1.1.2,1.1.3,.....,1.1.n,1.2.n,.....,1.n.nx-range
:x的位置表示任意版本,如:1.2.x,表示可以1.2.0,1.2.1,.....,1.2.n*-range
:任意版本,""也表示任意版本,如:*,表示>=0.0.0的任意版本version1 - version2
:大于等于version1,小于等于version2,如:1.1.2 - 1.3.1,表示包括1.1.2和1.3.1以及他们件的任意版本range1 || range2
:满足range1或者满足range2,可以多个范围,如:<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0,表示满足这3个范围的版本都可以
其他属性说明暂略
还不快抢沙发