当前位置: 首页 > news >正文

pnpm(Performant npm)的安装

优点
  • 极快的安装速度:利用硬链接和全局缓存,避免重复下载。

  • 节省磁盘空间:所有项目共享同一依赖版本,减少冗余。

  • 严格依赖隔离:避免“幽灵依赖”,安全性更高。

  • 原生 Monorepo 支持pnpm workspaces 比 npm/yarn 更高效。

如何强制使用 pnpm

在 package.json 中添加:

{"scripts": {"preinstall": "npx only-allow pnpm"}
}

1. 安装 pnpm

方法一:通过 npm 安装(推荐)
# 全局安装(需已安装 Node.js)
npm install -g pnpm# 验证安装
pnpm --version
方法二:独立脚本安装(无需 Node.js)
# macOS/Linux
curl -fsSL https://get.pnpm.io/install.sh | sh -# Windows (PowerShell)
iwr https://get.pnpm.io/install.ps1 -useb | iex
方法三:使用包管理器

macOS (Homebrew):

brew install pnpm

Linux (snap):

sudo snap install pnpm --classic

Windows (Scoop):

scoop install pnpm

2. 配置环境变量(可选)

pnpm 默认将全局包安装到 <home>/.pnpm-store,如需修改存储路径:

# 设置全局存储目录(替换为你的路径)
pnpm config set store-dir /path/to/store
配置镜像源(国内加速)
# 使用淘宝镜像
pnpm config set registry https://registry.npmmirror.com# 恢复默认
pnpm config set registry https://registry.npmjs.org

3. 升级与卸载

升级 pnpm

# 通过 pnpm 自身升级
pnpm add -g pnpm# 或使用 npm
npm update -g pnpm
卸载 pnpm
# 通过 npm 卸载
npm uninstall -g pnpm# 彻底删除全局存储(谨慎操作)
rm -rf ~/.pnpm-store

4. 验证安装

# 检查版本
pnpm -v# 查看配置
pnpm config list# 测试安装依赖
pnpm create vite@latest my-project --template react
cd my-project && pnpm install

常见问题

1. 权限问题(macOS/Linux)

若安装时报权限错误,可加上 sudo 或修复目录权限:

sudo npm install -g pnpm
# 或
mkdir ~/.pnpm-store && chown -R $(whoami) ~/.pnpm-store
2. 与 npm/yarn 共存

pnpm 与 npm/yarn 可安全共存,但建议项目内统一工具(通过 engines 字段约束):

// package.json
{"engines": {"pnpm": ">=8.0.0"}
}
3. 兼容性警告

某些老旧包可能依赖扁平化 node_modules,可临时启用提升模式:

pnpm install --shamefully-hoist

总结

  • 推荐安装方式:通过 npm install -g pnpm 或独立脚本安装。

  • 国内用户:务必配置镜像源加速。

  • Monorepo 项目:安装后初始化 pnpm-workspace.yaml 即可使用。

安装完成后,可体验 pnpm 的高效依赖管理和磁盘节省特性!

1. 依赖管理

功能pnpm 命令npm/yarn 等效命令
初始化项目pnpm initnpm init / yarn init
安装所有依赖pnpm install (或 pnpm i)npm install / yarn
安装生产依赖pnpm add <package>npm install <package>
安装开发依赖pnpm add -D <package>npm install -D <package>
全局安装pnpm add -g <package>npm install -g <package>
移除依赖pnpm remove <package>npm uninstall <package>
更新依赖pnpm updatenpm update / yarn upgrade
更新指定依赖pnpm update <package>npm update <package>
检查过时依赖pnpm outdatednpm outdated

2. 运行脚本

功能pnpm 命令npm/yarn 等效命令
运行 package.json 脚本pnpm run <script>npm run <script>
快捷运行(省略 runpnpm <script>yarn <script>
交互式脚本选择pnpm runnpm run (无交互)
并行运行多个脚本pnpm -r run <script>npm-run-all / yarn workspaces run
http://www.lryc.cn/news/622524.html

相关文章:

  • Docker之安装部署——(1)配置国内docker镜像源
  • 【多模态大模型】--BLIP3
  • 疯狂星期四文案网第40天运营日记
  • PyTorch的安装-CPU版本或者GPU安装有什么区别吗
  • Comfyui进入python虚拟环境
  • 《P1194 买礼物》
  • 综合案例:Python 函数知识整合 — 学生成绩管理系统
  • 【秋招笔试】2025.08.15饿了么秋招机考-第三题
  • 无脑整合springboot2.7+nacos2.2.3+dubbo3.2.9实现远程调用及配置中心
  • hex文件结构速查
  • PyQt6实例_50个流通领域重要生产资料市场价格查看工具
  • OpenCV---getStructuringElement 结构元素获取
  • 铨林接纸机学习记录1
  • 嵌入式开发学习———Linux环境下网络编程学习(二)
  • STC8单片机驱动I2C屏幕:实现时间、日期与温湿度显示
  • AutoSar AP平台功能组并行运行原理
  • 码上爬第七题【协程+对抗格式化检测+数组移位】
  • 【Canvas与玻璃光】铝圈蓝底玻璃光按钮
  • 吉他和弦学习:从音程基石到流畅弹奏
  • 优先级反转问题
  • 在使用 scp 传输大文件时,为避免因连接超时导致传输中断
  • 领域防腐层(ACL)在遗留系统改造中的落地
  • python中的reduce函数
  • MSYS2+CMake配置C/C++开发环境
  • OpenSCA开源社区每日安全漏洞及投毒情报资讯|14th Aug. , 2025
  • plantsimulation中存储(store)、缓冲区(buffer)、放置缓冲区(PlaceBuffer)的区别,分别应用于那种情况
  • OpenCompass傻瓜式入门教程
  • linux-数据链路层
  • 博弈论06——PPAD复杂度问题
  • JAVA-DAY7-面向对象进阶