Node 包管理器
npm(Node Package Manager)
npm 是 Node.js 的默认包管理器,也是最常用的包管理器之一。
安装
npm 会随着 Node.js 一起安装,所以你只需要安装 Node.js 即可。
使用
初始化项目
bash
npm init
npm init
安装包
bash
npm install <package-name>
或者
npm i <package-name>
npm install <package-name>
或者
npm i <package-name>
bash
npm install <package-name> -g
或者
npm i <package-name> -g
npm install <package-name> -g
或者
npm i <package-name> -g
bash
npm install <package-name>@<version>
或者
npm i <package-name>@<version>
npm install <package-name>@<version>
或者
npm i <package-name>@<version>
bash
# devDependencies
npm install <package-name> --save-dev
或者
npm i <package-name> -D
# devDependencies
npm install <package-name> --save-dev
或者
npm i <package-name> -D
bash
# dependencies
npm install <package-name> --save
或者
npm i <package-name> -S
# dependencies
npm install <package-name> --save
或者
npm i <package-name> -S
卸载包
bash
npm uninstall <package-name>
或者
npm un <package-name>
npm uninstall <package-name>
或者
npm un <package-name>
bash
npm uninstall <package-name> -g
或者
npm un <package-name> -g
npm uninstall <package-name> -g
或者
npm un <package-name> -g
更新包
bash
npm update <package-name>
或者
npm up <package-name>
npm update <package-name>
或者
npm up <package-name>
bash
npm update <package-name> -g
或者
npm up <package-name> -g
npm update <package-name> -g
或者
npm up <package-name> -g
查看包
bash
npm list <package-name>
或者
npm ls <package-name>
npm list <package-name>
或者
npm ls <package-name>
bash
npm list <package-name> -g
或者
npm ls <package-name> -g
npm list <package-name> -g
或者
npm ls <package-name> -g
bash
npm view <package-name> versions
npm view <package-name> versions
bash
npm config list
npm config list
清除缓存
bash
npm cache clean --force
npm cache clean --force
镜像
bash
npm config set registry https://registry.npmmirror.com
npm config set registry https://registry.npmmirror.com
bash
npm config get registry
npm config get registry
bash
npm config set registry https://registry.npmjs.org
npm config set registry https://registry.npmjs.org
yarn
yarn 是 Facebook 发布的新一代包管理器,相比 npm 有着更快的速度和更好的用户体验。
安装
bash
npm install -g yarn
npm install -g yarn
使用
初始化项目
bash
yarn init
yarn init
安装包
bash
yarn add <package-name>
yarn add <package-name>
bash
yarn global add <package-name>
yarn global add <package-name>
bash
yarn add <package-name>@<version>
yarn add <package-name>@<version>
bash
yarn add <package-name> --dev
或
yarn add <package-name> -D
yarn add <package-name> --dev
或
yarn add <package-name> -D
bash
yarn add <package-name> --save
或
yarn add <package-name> -S
yarn add <package-name> --save
或
yarn add <package-name> -S
卸载包
bash
yarn remove <package-name>
yarn remove <package-name>
bash
yarn global remove <package-name>
yarn global remove <package-name>
更新包
bash
yarn upgrade <package-name>
yarn upgrade <package-name>
bash
yarn global upgrade <package-name>
yarn global upgrade <package-name>
查看包
bash
yarn list <package-name>
yarn list <package-name>
bash
yarn global list <package-name>
yarn global list <package-name>
bash
yarn info <package-name> versions
yarn info <package-name> versions
bash
yarn config list
yarn config list
清除缓存
bash
yarn cache clean --force
yarn cache clean --force
镜像
bash
yarn config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com
bash
yarn config get registry
yarn config get registry
bash
yarn config set registry https://registry.yarnpkg.com
yarn config set registry https://registry.yarnpkg.com
pnpm
pnpm 是另一个包管理器,它旨在解决 npm 和 Yarn 在安装依赖包时占用磁盘空间的问题。pnpm 使用硬链接来共享依赖包,从而减少了磁盘空间的占用。
安装
bash
npm install -g pnpm
npm install -g pnpm
使用
初始化项目
bash
pnpm init
pnpm init
安装包
bash
pnpm install <package-name>
或
pnpm i <package-name>
或
pnpm add <package-name>
pnpm install <package-name>
或
pnpm i <package-name>
或
pnpm add <package-name>
bash
pnpm install <package-name> -g
或
pnpm i <package-name> -g
或
pnpm add <package-name> -g
pnpm install <package-name> -g
或
pnpm i <package-name> -g
或
pnpm add <package-name> -g
bash
pnpm install <package-name>@<version>
或
pnpm i <package-name>@<version>
或
pnpm add <package-name>@<version>
pnpm install <package-name>@<version>
或
pnpm i <package-name>@<version>
或
pnpm add <package-name>@<version>
bash
pnpm install <package-name> --save-dev
或
pnpm install <package-name> -D
pnpm install <package-name> --save-dev
或
pnpm install <package-name> -D
bash
pnpm install <package-name> --save
或
pnpm install <package-name> -S
pnpm install <package-name> --save
或
pnpm install <package-name> -S
卸载包
bash
pnpm uninstall <package-name>
或
pnpm remove <package-name>
或
pnpm rm <package-name>
pnpm uninstall <package-name>
或
pnpm remove <package-name>
或
pnpm rm <package-name>
bash
pnpm uninstall <package-name> -g
或
pnpm remove <package-name> -g
或
pnpm rm <package-name> -g
或
pnpm un <package-name> -g
pnpm uninstall <package-name> -g
或
pnpm remove <package-name> -g
或
pnpm rm <package-name> -g
或
pnpm un <package-name> -g
更新包
bash
pnpm update <package-name>
或
pnpm up <package-name>
或
pnpm upgrade <package-name>
pnpm update <package-name>
或
pnpm up <package-name>
或
pnpm upgrade <package-name>
bash
pnpm update <package-name> -g
或
pnpm up <package-name> -g
或
pnpm upgrade <package-name> -g
pnpm update <package-name> -g
或
pnpm up <package-name> -g
或
pnpm upgrade <package-name> -g
查看包
bash
pnpm list <package-name>
pnpm list <package-name>
bash
pnpm list <package-name> -g
pnpm list <package-name> -g
bash
pnpm view <package-name> versions
pnpm view <package-name> versions
bash
pnpm config list
pnpm config list
清除缓存
bash
pnpm store prune
pnpm store prune
镜像
bash
pnpm config set registry https://registry.npmmirror.com
pnpm config set registry https://registry.npmmirror.com
bash
pnpm config get registry
pnpm config get registry
bash
pnpm config set registry https://registry.npmjs.org
pnpm config set registry https://registry.npmjs.org
包管理器比较
功能 | pnpm | Yarn | npm |
---|---|---|---|
工作空间支持(monorepo) | ✔️ | ✔️ | ✔️ |
隔离的 node_modules | ✔️ - 默认 | ✔️ | ✔️ |
提升的 node_modules | ✔️ | ✔️ | ✔️ - 默认 |
自动安装 peers | ✔️ | ❌ | ✔️ |
Plug'n'Play | ✔️ | ✔️ - 默认 | ❌ |
零安装 | ❌ | ✔️ | ❌ |
修补依赖项 | ✔️ | ✔️ | ❌ |
管理 Node.js 版本 | ✔️ | ❌ | ❌ |
有锁文件 | ✔️ - pnpm-lock.yaml | ✔️ - yarn.lock | ✔️ - package-lock.json |
支持覆盖 | ✔️ | ✔️ - 通过 resolutions | ✔️ |
内容可寻址存储 | ✔️ | ❌ | ❌ |
动态包执行 | ✔️ - 通过 pnpm dlx | ✔️ - 通过 yarn dlx | ✔️ - 通过 npx |
Side-effects cache | ✔️ | ❌ | ❌ |
Listing licenses | ✔️ - 通过 pnpm licenses list | ✔️ - 通过插件 | ❌ |