npm
npm全名是node package manager,是js包管理工具。npm有个查询安装包的网址,安装包搜索,这里你可以搜索到各种安装包。
npm常用命令
1.初始化项目
npm init -y
创建一个项目,默认会生成package.json文件
2.安装模块
全局安装
npm install 模块名 -g
本地安装
npm install 模块名
如果这个模块是用户会使用到的,这个命令后面需要加上–save,这样package.json中的dependencies会自动添加这个模块依赖
npm install 模块名 --save
如果这个模块仅仅是开发者使用,后面加上–save-dev就可以了,这样package.json中的devDependencies会自动添加这个模块依赖
npm install 模块名 --save-dev
如果安装指定版本,模块名需要加版本号
npm install 模块名@1.0.0
3.卸载模块
卸载本地模块
npm uninstall 模块名
卸载全局模块
npm uninstall 模块名 -g
4.更新模块
更新本地模块
npm update 模块名
更新全局模块
npm update 模块名 -g
更新模块到指定版本
npm update 模块名@1.0.0
npm镜像
在开发过程中,npm有时下载安装包速度很慢,推荐使用镜像解决这个问题,需要安装cnpm工具。
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装完成后,可以使用cnpm管理模块。如果要安装一个模块,把之前的命令替换为cnpm install 模块名就可以了。
模块版本管理
npm init -y执行后会产生默认的package.json文件,里面默认填写了项目名称,版本号,描述等信息。这里使用cnpm install moment --save安装了moment库,文件里自动生成了dependencies字段,填入了"moment": "^2.29.1"这行内容。
{
"name": "project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"moment": "^2.29.1"
}
}
package.json的版本号管理有自己的规范,有些版本号前面是^,有些版本号前面是~,他们之间有什么区别呢?
先明确下版本号管理规范,2.29.1这个版本号,我们分为三个部分,2代表主版本号,29代表次版本号,1代表修订号。
版本号管理规范内容
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
再来看波浪符号和插入符号两个符号之间的区别
波浪符号(~)
它只会更新最后一个数字,也就是修订号。比如~1.5.0,它会更新到1.5.x版本,但不会更新到1.6.x版本
插入符号(^)
它会更新中间这个数字和最后一个数字,也就是次版本号和修订号。比如^1.5.0,它会更新到1.x.x版本,但不会更新到2.x.x版本
有关语义化版本的详细解释,可以看这个地方的介绍语义化版本。