1.作用
每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息。
2.创建
package.json 文件创建有两种方式,手动创建或者自动创建。
手动创建:直接在项目根目录新建一个 package.json 文件,然后输入相关的内容。
自动创建:在项目根目录下执行 npm init,然后根据提示一步步输入相应的内容完成后即可自动创建。
3.示例
{ "name": "Hello World", "version": "0.0.1", "author": "张三", "description": "第一个node.js程序", "keywords":["node.js","javascript"], "repository": { "type": "git", "url": "https://path/to/url" }, "license":"MIT", "engines": {"node": "0.10.x"}, "bugs":{"url":"http://github.com","email":"bug@example.com"}, "contributors":[{"name":"李四","email":"lisi@example.com"}], "scripts": { "start": "node index.js" }, "dependencies": { "express": "latest", "mongoose": "~3.8.3", "MD5": "^1.2.0" }, "devDependencies": { "bower": "1.2.8", "grunt": "~0.4.1", "browserify": "^2.36.1", } }
复制
4.字段说明
name # 名称 version # 版本 author # 作者 description # 描述 keywords # 关键字 repository # Git仓库所在位置 license # 开源协议 engines # 所需要的node.js版本 bugs # bug地址 contributors # 贡献者 scripts # 脚本 dependencies # 生产环境下,项目运行所需依赖。 devDependencies # 开发环境下,项目所需依赖
复制
5.版本号
可能很多人注意到了,dependencies和devDependencies依赖包的前面会有~或者^等符号的区别,主要讲解下比较常见的,npm模块的完整的版本号一般是【主版本 . 次要版本 . 补丁版本】
主版本 修复bug,兼容老版本 次要版本 新增功能,兼容老版本 补丁版本 新的架构调整,不兼容老版本
复制
1 使用~
安装时不改变大版本号和次要版本号。比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x。
2 使用^
安装时不改变大版本号。比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x。
3 不使用任何符号-指点版本
安装时只安装指定版本。比如1.2.2,只能安装1.2.2。