包管理工具速查表
命令对比
基本操作
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 初始化项目 | npm init | pnpm init | yarn init | yarn init |
| 安装依赖 | npm install | pnpm install | yarn | yarn |
| 安装包 | npm install <pkg> | pnpm add <pkg> | yarn add <pkg> | yarn add <pkg> |
| 安装开发依赖 | npm install -D <pkg> | pnpm add -D <pkg> | yarn add -D <pkg> | yarn add -D <pkg> |
| 全局安装 | npm install -g <pkg> | pnpm add -g <pkg> | yarn global add <pkg> | yarn global add <pkg> |
| 删除包 | npm uninstall <pkg> | pnpm remove <pkg> | yarn remove <pkg> | yarn remove <pkg> |
| 更新包 | npm update | pnpm update | yarn upgrade | yarn up |
| 检查过期 | npm outdated | pnpm outdated | yarn outdated | yarn upgrade-interactive |
脚本与执行
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 运行脚本 | npm run <script> | pnpm run <script> | yarn <script> | yarn <script> |
| 执行包命令 | npx <cmd> | pnpm dlx <cmd> | yarn dlx <cmd> | yarn dlx <cmd> |
信息查询
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 查看依赖 | npm list | pnpm list | yarn list | yarn info |
| 查看全局依赖 | npm list -g --depth=0 | pnpm list -g --depth=0 | yarn global list | yarn global list |
| 查看依赖原因 | - | pnpm why <pkg> | yarn why <pkg> | yarn why <pkg> |
| 查看包信息 | npm view <pkg> | pnpm view <pkg> | yarn info <pkg> | yarn npm info <pkg> |
配置与缓存
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 查看配置 | npm config list | pnpm config list | yarn config list | yarn config list |
| 设置镜像源 | npm config set registry <url> | pnpm config set registry <url> | yarn config set registry <url> | yarn config set npmRegistryServer <url> |
| 清除缓存 | npm cache clean --force | pnpm store prune | yarn cache clean | yarn cache clean |
发布与版本
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 登录 | npm login | pnpm login | yarn login | yarn login |
| 发布 | npm publish | pnpm publish | yarn publish | yarn publish |
| 版本更新 | npm version <type> | - | yarn version <type> | yarn version <type> |
CI/CD
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 确定性安装 | npm ci | pnpm install --frozen-lockfile | yarn install --frozen-lockfile | yarn install --immutable |
| 安全审计 | npm audit | pnpm audit | yarn audit | yarn npm audit |
Workspace
| 操作 | npm | pnpm | yarn 1 | yarn 2+ |
|---|---|---|---|---|
| 执行 workspace 命令 | npm run <script> -w <pkg> | pnpm --filter <pkg> run <script> | yarn workspace <pkg> <script> | yarn workspace <pkg> <script> |
| 所有 workspace 执行 | npm run <script> --workspaces | pnpm -r run <script> | yarn workspaces run <script> | yarn workspaces foreach run <script> |
锁文件
| 工具 | 锁文件 |
|---|---|
| npm | package-lock.json |
| pnpm | pnpm-lock.yaml |
| yarn | yarn.lock |
配置文件
| 工具 | 配置文件 |
|---|---|
| npm | .npmrc |
| pnpm | .npmrc |
| yarn 1 | .yarnrc |
| yarn 2+ | .yarnrc.yml |
版本号符号
| 符号 | 含义 | 示例 |
|---|---|---|
^ | 兼容版本 | ^1.2.3 → >=1.2.3 <2.0.0 |
~ | 近似版本 | ~1.2.3 → >=1.2.3 <1.3.0 |
> | 大于 | >1.2.3 |
>= | 大于等于 | >=1.2.3 |
< | 小于 | <1.2.3 |
<= | 小于等于 | <=1.2.3 |
* | 任意版本 | * |
| 无符号 | 精确版本 | 1.2.3 |
常用镜像源
| 名称 | 地址 |
|---|---|
| 官方 | https://registry.npmjs.org |
| 淘宝 | https://registry.npmmirror.com |
| 腾讯 | https://mirrors.cloud.tencent.com/npm/ |
| 华为 | https://repo.huaweicloud.com/repository/npm/ |
package.json 常用字段
{
"name": "package-name",
"version": "1.0.0",
"description": "Package description",
"main": "index.js",
"module": "index.mjs",
"types": "index.d.ts",
"bin": {
"cli-name": "./bin/cli.js"
},
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "webpack"
},
"dependencies": {
"lodash": "^4.17.21"
},
"devDependencies": {
"jest": "^29.5.0"
},
"peerDependencies": {
"react": ">=16.8.0"
},
"optionalDependencies": {
"fsevents": "^2.3.0"
},
"engines": {
"node": ">=18.0.0"
},
"files": [
"dist",
"lib"
],
"keywords": ["keyword1", "keyword2"],
"author": "Author Name",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/user/repo"
},
"bugs": {
"url": "https://github.com/user/repo/issues"
},
"homepage": "https://github.com/user/repo#readme"
}
选择建议
| 场景 | 推荐工具 |
|---|---|
| 新项目 | pnpm |
| 单体仓库 | pnpm / yarn 2+ |
| 兼容性要求高 | npm |
| 企业级项目 | pnpm / yarn |
| 开源项目 | npm |
| CI/CD 环境 | 使用对应工具的确定性安装命令 |