发布于 2026-01-06 6 阅读
0

npm vs yarn vs pnpm vs bun 命令速查表 切换包管理器 DEV 的全球展示挑战赛,由 Mux 呈现:展示你的项目!

npm、yarn、pnpm 和 bun 命令速查表

交换机包管理器

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

如果你想摆脱各个软件包管理器中那些五花八门的命令,我强烈建议你安装SWPM,告别软件包管理器的混乱。它会自动为你转换所有命令。

这是一份速查表,您可以将其用作npmyarnpnpmbun命令的便捷参考。

注意:<package>请遵循此结构<package[@latest|@#.#.#]>

软件包命令

命令 npm 纱线(浆果) pnpm 包子
清除缓存 npm cache clean yarn cache clean yarn cache clean 不适用 bun pm cache rm
package.json npm install yarn [install] yarn [install] pnpm install bun install
不要读取或生成锁定文件 npm install --no-package-lock yarn install --no-lockfile yarn install --no-lockfile 不适用 bun install --no-save
不要生成锁定文件 yarn install --pure-lockfile yarn install --pure-lockfile 不适用
锁定文件未更新 npm ci yarn install --frozen-lockfile yarn install --immutable pnpm install --frozen-lockfile bun install --frozen-lockfile
添加包 npm install <package> [--location=global] yarn [global] add <package> yarn [global] add <package> pnpm add <package> [--global] bun add <package> [--global]
添加软件包dependencies npm install <package> yarn add <package> yarn add <package> pnpm add <package> bun add <package>
添加软件包devDependencies npm install <package> --save-dev yarn add <package> --dev yarn add <package> --dev pnpm add <package> --save-dev bun add <package> --dev
添加软件包optionalDependencies npm install <package> --save-optional yarn add <package> --optional yarn add <package> --optional pnpm add <package> --save-optional bun add <package> --optional
添加软件包peerDependencies npm install <package> --save-peer yarn add <package> --peer yarn add <package> --peer pnpm add <package> --save-peer 不适用
添加确切版本 npm install <package> --save-exact yarn add <package> --exact yarn add <package> --exact pnpm add <package> --save-exact bun add <package> --exact
移除包裹 npm uninstall <package> [--location=global] yarn [global] remove <package> yarn [global] remove <package> pnpm uninstall <package> [--global] bun remove [<package>] [--global]
移除软件包dependencies npm uninstall <package> yarn remove <package> yarn remove <package> pnpm uninstall <package> bun remove <package>
移除软件包devDependencies npm uninstall <package> --save-dev yarn remove <package> --dev yarn remove <package> --dev pnpm uninstall <package> --save-dev bun remove <package> --dev
移除软件包optionalDependencies npm uninstall <package> --save-optional yarn remove <package> --optional yarn remove <package> --optional pnpm uninstall <package> --save-optional bun remove <package> --optional
移除软件包peerDependencies npm uninstall <package> --save-peer yarn remove <package> --peer yarn remove <package> --peer pnpm uninstall <package> --save-peer 不适用
更新软件包(否package.json npm update [<package>] [--location=global] yarn [global] upgrade [<package>] yarn [global] semver up [<package>] pnpm update [<package>] [--global] 不适用
升级包package.json npm install <package>@latest [--location=global] yarn [global] upgrade <package> --latest yarn [global] up <package> pnpm update <package> --latest [--global] 不适用
升级互动 不适用 yarn upgrade-interactive yarn upgrade-interactive pnpm update --interactive 不适用
列出顶层所有软件包 npm list --depth 0 [--location=global] yarn [global] list --depth 0 yarn [global] list --depth 0 pnpm list --depth 0 [--global] bun pm ls
审计易受攻击的依赖项 npm audit [fix] yarn audit yarn audit pnpm audit [--fix]

共享命令

软件包管理器之间应使用相同的命令结构。

命令 npm 纱线(浆果) pnpm 包子
初始化或创建 npm init yarn init yarn init pnpm init bun init
登录/注销 npm <login or logout> yarn <login or logout> yarn <login or logout> pnpm <login or logout> 待定
运行脚本 npm run <script> yarn run <script> yarn run <script> pnpm [run] <script> bun run <script>
运行测试 npm test yarn test yarn test pnpm test bun test
板条箱捆绑包 npm build yarn build yarn build pnpm build bun build
发布 npm publish yarn publish yarn npm publish pnpm publish 待定
取消发布 npm unpublish <package>[@#.#.#] yarn unpublish <package>[@#.#.#] yarn unpublish <package>[@#.#.#] pnpm unpublish <package>[@#.#.#] 待定
已弃用 npm deprecate <package>[@#.#.#] <message> yarn deprecate <package>[@#.#.#] <message> yarn deprecate <package>[@#.#.#] <message> pnpm deprecate <package>[@#.#.#] <message> 待定
配置列表 npm config list yarn config list yarn config list pnpm config list 待定
配置--save-default为默认值 npm config set save-exact true yarn config set save-exact true yarn config set save-exact true pnpm config set save-exact true 待定
~改为默认配置^ npm config set save-prefix '~' yarn config set save-prefix '~' yarn config set save-prefix '~' pnpm config set save-prefix '~' 待定
列出过期的软件包 npm outdated [<package>] [--location=global] yarn [global] [<package>] outdated yarn [global] [<package>] upgrade-interactive pnpm outdated [<package>] [--global] 待定
链接本地包 npm link [<folder>] yarn link [<folder>] yarn link [<folder>] pnpm link [<folder>] bun link [<folder>]
取消链接本地软件包 `npm unlink [<folder\ package> --no-save]` `yarn unlink [<folder\ 包>]` `yarn unlink [<folder\

远程运行

无需安装即可运行命令。

命令 npm 纱线(浆果) pnpm 包子
运行包 {% 生的 %}npx <package> yarn dlx <package> yarn dlx <package> pnpm dlx <package> bunx <package>

CLI 文档


来源

欢迎投稿。

GitHub 标志 deinsoftware / swpm

切换软件包管理器 - 告别软件包管理器混乱

交换机包管理器

建造 发布 声呐可靠性 声纳安全 声呐维护性 声呐覆盖范围
npm 版本 npm 下载 节点引擎 伏特 js标准样式 执照

每分钟交换


菜单


入门

在切换 JavaScript 项目时,很容易忘记应该使用哪个包管理器。JavaScript 包管理器之间也并非完全兼容,每个包管理器解析依赖项的方式都不同,因此,如果错误地安装了npm某个包管理器yarn(例如 Classic 或 Berry),pnpm可能会导致bun项目崩溃。

swpm是一个旨在解决这个问题的命令行界面工具,它将最常用的 Node 包管理器的常用命令统一到一个命令中。它能够识别项目中使用的包管理器,并自动转换相应的命令。

这是 #swpm 工作原理的一个示例。无论项目中使用的是哪个包管理器,命令都相同。

swpm 示例

注意
我们将从最常用的命令开始,然后逐步添加其他命令。请在速查表
上跟踪命令的实现进度

进步…


就这些啦!祝大家
编程愉快! 🖖

啤酒

文章来源:https://dev.to/equiman/npm-vs-yarn-vs-pnpm-commands-cheatsheet-3el8