基础配置文件package.json
package.json文件是任何一个用npm管理的项目的基础配置文件,文件中包含了项目所要用到的所有依赖和脚本;
-
基础属性
- name:项目名称
- version: 项目版本,version必须可以被npm依赖的一个node-semver模块解析
package.json必须是一个严格的json文件,其中最重要的是name和version两个属性,这两个属性必须要有,否则模块就无法被安装,这两个属性一起形成了一个npm模块的唯一标识。模块中内容变更的同时,版本也一起变化。
- scripts属性
scripts属性是一个对象,这个对象中指定了项目的生命周期各个环节需要执行的命令(key是生命周期中的事件,value是要执行的命令)
scripts属性
上图是使用vue-cli脚手架时package.json里关于scripts属性的命令项:
- “start”:启动命令,运行npm run dev时启动项目
-
“dev”:
每次执行此命令时首先去加载webpack.dev.conf.js文件;
--host 0.0.0.0在浏览器以IP地址形式打开;
“bulid”:build命令对应的脚本是node build.js,命令行下使用npm run命令,就可以执行这段脚本。
$ npm run build
// 等同于执行
$ node build.js
这些定义在npm中的脚本,就称之为npm脚本。每当执行npm run,就自动新建一个shell,在这个shell里面执行指定的脚本命令。因此,只要是shell可以运行的命令,就可以写在npm脚本里面。
- dependencies属性
dependencies属性指定了项目运行所依赖的模块,对象中各个成员分别由模块名和版本组成,表示所依赖的模块及其版本范围;
dependencies属性
其中版本遵循“大版本.次要版本.小版本”的格式,版本范围的安装有以下几种形式:
- 指定版本:安装时只安装指定版本。
- 波浪号+版本号:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号,只改变小版本号。
- 插入号+版本号:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
- latest:安装最新版本。
- devDependencies属性
devDependencies属性指定了项目开发所需要的模块;
在使用 npm install xxx 安装模块时,--save参数表示将该模块写入dependencies属性,--save-dev表示将该模块写入devDependencies属性
-
engines 属性
engines属性
engines 属性指明了该模块运行的平台
- browserslist属性
browserslist属性指明了对浏览器的要求,这个配置文件时vue-cli脚手架内package.json文件,因此指明了vue不支持IE8
网友评论