项目中的package.json和package-lock.json的区别详解

428 阅读1分钟

一般的项目都会有两个文件,是一创建项目就存在的,分别是package.json和package-lock.json,下面来详细解释一下内容

package.json中定义了本项目所需要的各个依赖的模块,以及项目的配置信息。npm install命令根据这个配置文件,自动下载所需要的模块,也就是配置项目所需的运行和开发环境

{
	"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://path/to/bug","email":"bug@example.com"},
	"contributors":[{"name":"李四","email":"lisi@example.com"}],
	"scripts": {
		"start": "node index.js"
	},
	"dependencies": {
		"express": "latest",
		"mongoose": "~3.8.3",
		"handlebars-runtime": "~1.0.12",
		"express3-handlebars": "~0.5.0",
		"MD5": "~1.2.0"
	},
	"devDependencies": {
		"bower": "~1.2.8",
		"grunt": "~0.4.1",
		"grunt-contrib-concat": "~0.3.0",
		"grunt-contrib-jshint": "~0.7.2",
		"grunt-contrib-uglify": "~0.2.7",
		"grunt-contrib-clean": "~0.5.0",
		"browserify": "2.36.1",
		"grunt-browserify": "~1.3.0",
	}
}
  • name:项目名称
  • version:版本号(大版本.次要版本.小版本)
  • author:作者
  • description:描述
  • keywords:关键字
  •  scripts:指定了运行脚本命令的npm命令行缩写,如start,即npm run start,运行的是node index.js
  • dependencies:指定了项目运行所依赖的模块
  • devDependencies:制定了项目开发所依赖的模块
    • 波浪号+指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是最高也不会到1.3.0
    • 插入号+指定版本:比如^1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是最高也不会到2.0.0
    • 注意:如果大版本号为0的,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能会带来程序的不兼容

package-lock.json和package.json的区别简单来说就是对依赖的模块描述区别,package-lock.json是在npm install时生成的一个文件,用以记录当前状态下实际安装的各个依赖包的具体来源和版本号