npm
npm灵魂 — package.json
Node、
2017-09-13
资料整理
创建
通过 npm init
创建 package.json
文件。
配置
package.json的文件配置有:
name
- 必选项,模块名称。命名时不能包含js、node、和url中需要转义的字符,不能以.和_为开头。version
- 必选项,模块的版本号。main
- 必选项,模块入口文件相对路径(相对于模块根目录)。description
- 可选项,模块功能描述,显示在npm search "package-name"
中。keywords
- 可选项,数组类型,模块的关键字,显示在npm search "package-name"
中。author
- 可选项,发起者信息。示例如下:{ "author": { "name": "lijiahao8898", "email": "lijiahao8898@163.com", "url": "https://lijiahao8898.github.io/" } }
engines
- 可选项,依赖的node版本。示例如下:
{
"engines":{
"node": ">= 0.8.0"
}
}
repository
- 可选项,源码托管地址。示例如下:
{
"repository": {
"type": "git",
"url": "git url address",
} ,
}
-
scripts
- 可选项,自定义在cli中输入npm "script"
时实际执行的程序。npm默认提供大量的script供我们调用。 -
dependencies、devDependencies
- 可选项,用于配置模块的生产环境依赖包和开发环境依赖包。 当执行npm install
时,npm会根据这两个配置项的值去下载安装相关的依赖包。 两者的区别是devDependencies
是模块开发过程的依赖包(如:grunt只在开发时有用的模块),并且当其他模块需要依赖 当前模块时,当通过npm install “package-name”
时会自动下载安装dependencies
的包而不会下载devDependencies
的包。
版本说明
版本号以主版本号 Major
.副版本号 Minor
.补丁版本号 Patch
。
engines、dependencies
和 devDependencies
等配置项中可使用语义化版本号语法,具体如下:
1.1.1
- 精确下载安装1.1.1版本的包。>、=1.1.1
- 分别表示下载安装大于、小于等于、大于等于1.1.1版本的包。1.0.1-1.1.1
- 表示版本范围是包含1.0.1到1.1.1版本的包。~1.1.1
- 表示尽量采用靠近1.1.1版本的包,但可用的包版本范围是1.1.1-0到1.1.x-x版本的包。~1.1
- 表示下载安装1.1.x-x版本的包。~1
- 表示下载安装1.x.x-x版本的包。^1.1.1
- 表示包版本范围是1.1.1到1.x.x-x。^0.1.1
- 表示包版本范围是1.1.1到1.1.x-x。^1.1
- 表示包版本范围是1.1.x-x到1.x.x-x。^1
- 表示包版本范围是1.x.x-x。空格、x
- 表示任意版本即可。