1、package.json是什么
1、每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
2、package.json文件可以手工编写,也可以使用npm init命令自动生成。
下面是一个最简单package.json
1 2 3 4 5
| { "name": "", "version": "" } // package.json文件就是一个JSON对象,该对象的每一个成员就是当前项目的一项设置。比如name就是项目名称,version是版本
|
2、详解package.json里面的各个字段
2.1 scripts字段
scripts指定了运行脚本命令的npm命令行缩写。
1 2 3 4 5 6 7 8 9 10 11
| npm run dev 执行了scripts字段里面的dev里面的内容
"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "unit": "jest --config test/unit/jest.conf.js --coverage", "e2e": "node test/e2e/runner.js", "test": "npm run unit && npm run e2e", "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs", "build": "node build/build.js" }
|
2.2 dependencies字段,devDependencies字段
dependencies((上线和开发都需要的依赖))字段指定了项目运行所依赖的模块,devDependencies(开发时运行的依赖)指定项目开发所需要的模块。
它们都指向一个对象。该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。
关于安装模块的版本需要注意下面几点:
1 2 3 4 5 6
| 1、指定版本:例如"vue": "2.5.2",即执行npm install时只安装2.5.2版本的vue 2、波浪号(tilde)+ 指定版本:例如"vue": "~2.5.2",即安装2.5.x里面的最新版本,不会安装2.6.x里面的版本 3、插入号(caret)+ 指定版本:例如"vue": "^2.5.2",即安装2.x.x里面的最新版本,但不会安装3.x.x里面的版本 4、latest:安装最新版本,例如:"vue": latest
ps:版本号的3位数字分别对应 大版本,次要版本,小版本
|
3、engines 字段
engines字段指明了该模块运行的平台。
1 2 3 4
| "engines": { "node": ">= 4.0.0", // 需要node的版本大于等于4.0 "npm": ">= 3.0.0" // 需要npm的版本大于等于3.0 }
|
4、browserslist 字段
限制了浏览器或者客户端需要什么版本才可运行,一些插件例如Autoprefixer
会读取里面配置的浏览器来自动加上css前缀。
1 2 3 4 5
| "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ]
|