目前node的主流包管理工具有 npm 、yarn、cnpm、pnpm等,本文主要是记录一下这些包管理工具的常用命令和参数
cnpm的用法和npm的用法一致,只是在执行命令的时候将
npm改为cnpm
全局安装包管理工具
// 安装node自带npm,检查是否安装成功,执行如下命令
npm -v
// 6.14.15 显示版本号,表示npm安装成功
// yarn 安装
npm install -g yarn
// cnpm 安装
npm install -g cnpm
// pnpm 安装
npm install -g pnpm
`install` 简写 `i`
初始化项目
//初始化一个项目
npm init // cnpm init、pnpm init
yarn init
// 快速生成的package.json默认配置
npm init --yes
yarn init --yes
`--yes` 简写 `-y`
安装依赖
//默认下载`package.json`内记录的所有依赖到本地`node_modules`文件夹
npm install
//别名: npm i 或 npm add
pnpm install
//别名: pnpm i
yarn install
//别名: yarn
//强制重新安装依赖
npm install --force
yarn install --force
`--force` 简写 `-f`
install 命令总是安装模块的最新版本
//以安装sax模块为例:
//npm
npm install sax //安装到本地,但不写入`package.json`的
npm install sax -S //保存到`package.json`的 `dependencies` 配置项
npm install sax -D //保存到`package.json`的 `devDependencies` 配置项
npm install sax -O //保存到`package.json`的 `optionalDependencies` 配置项
//pnpm
pnpm add sax
...(同上)
//yarn
yarn add sax
...(同上)
`--save` 简写 `-S` (生产依赖)
`--save-dev` 简写 `-D` (开发依赖)
`--save-optional` 简写 `-O` (可选依赖)
如果要安装指定版本,需要在依赖名后面加 @ 和 版本号
//以安装sax模块为例
//指定版本`3.0.0`安装
npm install sax@3.0.0
pnpm add sax@3.0.0
yarn add sax@3.0.0
//指定范围安装
npm install sax@">=0.1.0 <0.2.0"
pnpm add sax@">=0.1.0 <0.2.0"
yarn add sax@">=0.1.0 <0.2.0"
//安装特定标记版本 例如:`beta`,`next`或`latest`
npm install sax@latest
pnpm add sax@next
yarn add sax@beta
//全局安装
npm install -g sax
pnpm add -g sax
yarn global add sax
//与 `npm` 中 `--global`的标志不同,`global`它是一个必须紧跟在命令`yarn`后面
查看依赖
//查看 项目/全局 安装过的依赖
npm list [-g] //默认显示根依赖
//list 别名: ls 、 la 、ll (都是查询,展示方式不同)
pnpm ls [-g] --depth 0
yarn [global] list --depth=0
//`--depth` 表示限制输出模块的层级,0即只显示根依赖
//查看 项目/全局 可以更新的依赖
npm outdated [-g]
pnpm outdated [-g]
yarn [global] outdated
更新依赖
// 更新项目/全局过时的依赖
npm update [-g]
//update 别名 up, upgrade
//pnpm
pnpm up //更新所有依赖项,遵守中指定的范围`package.json`
pnpm up --latest //更新所有依赖项,忽略指定的范围`package.json`
pnpm up foo@2 //更新`foo`到 v2 上的最新版本
pnpm up "@babel/*" //更新`@babel`作用域下的所有依赖
//yarn
yarn [global] upgrade //更新所有依赖项
yarn [global] upgrade sax@3.0.0
yarn [global] upgrade --ignore-engines //更新所有依赖项,忽略指定的范围
卸载依赖
// 卸载项目/全局的sax依赖
npm uninstall [-g] sax
//uninstall 别名: remove, rm, r, un, unlink
npm cache clean --force
//清理 npm 缓存
pnpm uninstall [-g] sax // 卸载项目/全局的sax依赖
//uninstall 别名: remove, rm, un
yarn [global] remove sax