跳到主要内容

包管理工具速查表

命令对比

基本操作

操作npmpnpmyarn 1yarn 2+
初始化项目npm initpnpm inityarn inityarn init
安装依赖npm installpnpm installyarnyarn
安装包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 updatepnpm updateyarn upgradeyarn up
检查过期npm outdatedpnpm outdatedyarn outdatedyarn upgrade-interactive

脚本与执行

操作npmpnpmyarn 1yarn 2+
运行脚本npm run <script>pnpm run <script>yarn <script>yarn <script>
执行包命令npx <cmd>pnpm dlx <cmd>yarn dlx <cmd>yarn dlx <cmd>

信息查询

操作npmpnpmyarn 1yarn 2+
查看依赖npm listpnpm listyarn listyarn info
查看全局依赖npm list -g --depth=0pnpm list -g --depth=0yarn global listyarn global list
查看依赖原因-pnpm why <pkg>yarn why <pkg>yarn why <pkg>
查看包信息npm view <pkg>pnpm view <pkg>yarn info <pkg>yarn npm info <pkg>

配置与缓存

操作npmpnpmyarn 1yarn 2+
查看配置npm config listpnpm config listyarn config listyarn 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 --forcepnpm store pruneyarn cache cleanyarn cache clean

发布与版本

操作npmpnpmyarn 1yarn 2+
登录npm loginpnpm loginyarn loginyarn login
发布npm publishpnpm publishyarn publishyarn publish
版本更新npm version <type>-yarn version <type>yarn version <type>

CI/CD

操作npmpnpmyarn 1yarn 2+
确定性安装npm cipnpm install --frozen-lockfileyarn install --frozen-lockfileyarn install --immutable
安全审计npm auditpnpm audityarn audityarn npm audit

Workspace

操作npmpnpmyarn 1yarn 2+
执行 workspace 命令npm run <script> -w <pkg>pnpm --filter <pkg> run <script>yarn workspace <pkg> <script>yarn workspace <pkg> <script>
所有 workspace 执行npm run <script> --workspacespnpm -r run <script>yarn workspaces run <script>yarn workspaces foreach run <script>

锁文件

工具锁文件
npmpackage-lock.json
pnpmpnpm-lock.yaml
yarnyarn.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 环境使用对应工具的确定性安装命令