本来在看webpack配置的时候,发现里面有一些package.json的东西不太眼熟,就顺道去隔壁nodejs了解了下package.json。
这里主要介绍了一些npm操作包,以及package.json的属性、作用的介绍。
本着以自己的理解,参考网上大佬的资料和说明。了解了解
npm 是一个包管理器。
npm的安装与更新
npm 是依附与node.js的,我们下载好node.js,npm就自动安装好了。
node -v
//打印:v8.x.x
npm -v
//打印:5.x.x
npm更新也很方便和简单,直接使用命令更新
npm install npm -g
-g 表示全局安装
package.json文件
package.json 用于管理本地安装npm包。一般有如下作用:
1. 作为一个描述文件,描述项目依赖哪些包
2. 让构建更好地与其他开发者分享,便于重复使用
package.json创建
使用npm init即可在当前目录创建一个package.json文件。
npm init
创建package.json的时候,一般会让填写一些基础属性的信息,比如名称版本等。此时可以用过npm init --yes 跳过填写直接创建默认名称。
package.json内容介绍
package.json至少会包含两部分内容:
1. name 名称。要求全部小写,无空格,可以使用下划线或横线
2. version 格式要求为x.x.x ,并且负荷'语义化版本规则'
其他内容:
description: 描述信息
main: 入口文件。一般是index.js
scripts: 支持脚本,默认一个空的test
keywords: 关键字,有助于使用npm search时发现你的项目
author: 作者信息
license: 默认是MIT
bugs: 当前项目的一些错误信息
使用npm init来设置一些默认值
npm set init.author.name "chl"
npm set init.author.email "[email protected]"
指定依赖包
在package.json中指定项目依赖的包,然后用npm install将这些包下载下来。
包的依赖方式有两种:
1. dependencies: 在生产环境中徐要用到的依赖
2. devDependencies: 在开发、测试环境中用到的依赖
{
"devDependencies": {
"webpack": "^4.10.2",
"webpack-cli": "^3.0.1",
"webpack-dev-server": "^3.1.4"
},
"dependencies": {
"vue": "^2.5.16"
}
}
npm install PackageName 安装"dependencies"模式的包
npm install PackageName --save-dev 安装"devDependencies"模式的包
Semantic versioning(语义化版本规则)
npm的"Semantic versioning",简称"Semver"(会不会有人拿这个名称来做面试坑人呢=_=),中文名称就叫"语义化版本规则"。
那么具体指啥呢?比如我们在package.json中的dependencies的内容,有些是"xx": "^3.3.1",这里的^或者*等这种,就是这东西。
使用案例:建设我们依赖一个包的当前版本是1.0.4
如果只打算接受补丁版本更新(最后一位改变),写法可以如下:
"xx": "1.0"
"xx": "1.0.x"
"xx": "~1.0.4"
如果接受小版本更新(第二位改变),写法如下:
"xx": "1"
"xx": "1.x"
"xx": "^1.0.4"
如果接受大版本更新
"xx": *
"xx": x
package安装
使用npm install默认会安装package.json中dependencies和devDependencies里所有的内容。
如果指向安装dependencies中的内容,可以使用--production
npm install --production
安装指定版本的package
npm install默认会安装最新版本,可以使用如下方式安装指定版本的包
npm install [email protected]
//或
npm install xx@">=2.1.3 <2.1.8"
更新package
查看包是否有新版本
npm outdated xx
//若无则不打印
如果有新版本的包,可以使用update更新
npm update xx
下载后的package可以在node_module文件夹中找到,在Node.js项目中,可以用require(xx)来使用