阮一峰源地址
注:本文主要记录一些难以理解的属性
- version:version是版本(遵守“大版本.次要版本.小版本”的格式)。
- scripts指定了命令缩写,前面加上npm run即可使用后面引号内的命令。
- dependencies字段指定了项目运行所依赖的模块,devDependencies指定项目开发所需要的模块。与之相对应的是下载时的 --save写入运行时依赖属性与--save-dev写入开发时依赖属性。关于版本号
指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。
波浪号(tilde)+指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,
也就是说安装时不改变大版本号和次要版本号。
插入号(caret)+指定版本:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,
也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,
这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
latest:安装最新版本。
- package.json文件可以手工编写,也可以使用npm init命令自动生成。
$ npm init
- 有了package.json文件,直接使用npm install命令,就会在当前目录中安装所需要的模块。
- peerDependencies:如果A模块为1.0,B模块为2.0,且只有这两个版本可以并存,那么使用这个属性可以限制。注意,从npm 3.0版开始,peerDependencies不再会默认安装了。
{
"name": "chai-as-promised",
"peerDependencies": {
"chai": "1.x"
}
}
上面代码指定,安装chai-as-promised模块时,主程序chai必须一起安装,而且chai的版本必须是1.x。如果你的项目指定的依赖是chai的2.0版本,就会报错。
- bin:用于规定对应文件的位置类似于别名
"bin": {
"someTool": "./bin/someTool.js"
}
scripts: {
start: './node_modules/bin/someTool.js build'
}
// 简写为
scripts: {
start: 'someTool build'
}
所有node_modules/.bin/目录下的命令,都可以用npm run [命令]的格式运行。在命令行下,键入npm run,然后按tab键,就会显示所有可以使用的命令。
- main:main字段指定了加载的入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。
-
config:原图奉上
- browser:browser指定该模板供浏览器使用的版本。Browserify这样的浏览器打包工具,通过它就知道该打包那个文件。
"browser": {
"tipso": "./node_modules/tipso/src/tipso.js"
},
- engines:用来指定平台node的版本或者npm版本
{ "engines" : { "node" : ">=0.10.3 <0.12" } }
{ "engines" : { "npm" : "~1.0.20" } }
- man:man用来指定当前模块的man文档的位置。
"man" :[ "./doc/calc.1" ]
- preferGlobal:preferGlobal的值是布尔值,表示当用户不将该模块安装为全局模块时(即不用–global参数),要不要显示警告,表示该模块的本意就是安装为全局模块。
- style:style指定供浏览器使用时,样式文件所在的位置。样式文件打包工具parcelify,通过它知道样式文件的打包位置。
"style": [
"./node_modules/tipso/src/tipso.css"
]