npm、pnpm、npx 三者的定位、核心差异和「什么时候该用谁」

下面把 npm、pnpm、npx 三者的定位、核心差异和「什么时候该用谁」一次性讲清楚,并给出一份「日常开发最顺手的组合」。


一、一句话区分

  1. npm:Node 官方标配,负责"安装、卸载、发布"包。

  2. pnpm:社区实现的"高性能 npm",磁盘省 70 %+、安装最快、Monorepo 体验最好。

  3. npx:npm 5.2+ 自带的"临时命令执行器",不想全局装包时就靠它。


二、核心差异对照表(2025 年主流版本)

| 特性 | npm | pnpm | npx |

|---|---|---|---|

| 主要用途 | 依赖管理、脚本运行 | 依赖管理(提速+省盘) | 一次性/临时命令 |

| 安装后是否留在硬盘 | 是 | 是(全局 store 硬链接) | 否(用完即删) |

| 是否解决"幽灵依赖" | ❌ 扁平 node_modules 易产生 | ✅ 严格依赖树 | --- |

| Monorepo 支持 | 需自己配 workspace | 原生 workspace,体验最好 | --- |

| 速度排名 | 慢 | 最快 | 仅运行阶段快 |

| 是否可发布包 | ✅ | ✅ | ❌ |

| 是否需单独安装 | 随 Node 自带 | 需 `npm i -g pnpm` | 随 npm 自带 |


三、典型场景推荐

  1. 日常项目依赖管理

✅ 优先 `pnpm install`

理由:安装快、省磁盘、依赖结构干净,大型/Monorepo 项目收益更高 。

  1. 运行 package.json 里的脚本

三者都能跑:

`npm run dev` / `pnpm dev` 均可;pnpm 解析速度略快。

  1. 临时脚手架/一次性工具(create-vite、eslint 初始化等)

✅ 无脑 `npx <pkg>`

无需全局安装,执行完自动清理,正好利用 npx 的"即用即走"特性 。

  1. 国内网络极差时

可以 `npm i -g cnpm` 救急,但生产依赖建议回退到 pnpm 或 npm,避免镜像同步延迟带来的隐患 。


四、最佳实践组合(95 % 场景通杀)

1. 全局装一次 pnpm

npm i -g pnpm

2. 项目初始化

pnpm create vite@latest my-app # 实际走的是 pnpm dlx,等价 npx

cd my-app

pnpm install # 依赖安装飞快且省空间

pnpm dev # 启动开发服务器

3. 偶尔需要官方 npm 命令

npm publish # 发包依旧用 npm 最稳

npx http-server -p 8080 # 临时起个静态服务


五、速记口诀

"依赖管理用 pnpm,临时命令用 npx,官方场景留 npm。"

按这个节奏,你既能享受 pnpm 的极速和节省,又能保留 npm 的完整生态,npx 则负责"用完即走"的脏活累活。

相关推荐
小鸡吃米…6 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫6 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)6 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan6 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维7 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS7 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd7 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
水如烟8 小时前
孤能子视角:“意识“的阶段性回顾,“感质“假说
人工智能
Carl_奕然8 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
旅途中的宽~8 小时前
《European Radiology》:2024血管瘤分割—基于MRI T1序列的分割算法
人工智能·计算机视觉·mri·sci一区top·血管瘤·t1