砍材农夫砍材农夫
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • llm wiki

    • 基于karpathy
    • gradle
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • nodejs
    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
    • app
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
    • python高级
    • python框架
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • llm wiki

    • 基于karpathy
    • gradle
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • nodejs
    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
    • app
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
    • python高级
    • python框架
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • npm

    • npm入门
    • cnpm配置
    • npm比较
    • pnpm入门
  • pnpm 安装
  • npm和pnpm区别
  • pnpm对nodejs版本依赖
  • pnpm环境变量配置
  • 验证是否安装成功
  • pnpm特殊指定目录,默认都在PNMP_HOME下面
  • 存量npm项目切换pnpm
  • pnpm镜像配置

pnpm 安装

官网下载 安装[https://github.com/pnpm/pnpm/releases/tag/v11.0.0]

npm和pnpm区别

npm 将每个依赖的副本直接复制到项目的 node_modules 文件夹中,像是为每个项目都单独购买一份仓库里已有的图纸。 而 pnpm 采用了一种更巧妙的方式:它只在一个名为“仓库”(store)的全局地方存放一份图纸,各个项目都通过一种“快捷方式”(即硬链接和符号链接)来引用它

  • 关键区别如下:
特性维度pnpm (新一代性能工具)npm (传统的 Node.js 默认工具)核心优势
磁盘占用极低高pnpm 通过全局存储 + 硬链接节省大量空间。例如,10个项目安装相同依赖时,npm 需 1.2 GB,而 pnpm仅需 320 MB。
安装速度快速较慢pnpm 因无需重复下载与写入,比 npm 快 2-3 倍。
依赖安全性严格隔离高度扁平化pnpm 的 node_modules 结构消除了"幽灵依赖"风险,强制所有依赖显式声明。
Monorepo 支持原生强力支持基础支持pnpm 通过内置 workspace 命令,为管理多包仓库提供了流畅体验。
锁文件pnpm-lock.yamlpackage-lock.json两者都是严格的版本锁定文件,确保环境一致性。

pnpm对nodejs版本依赖

pnpm 版本最低 Node.js 版本关键变化 / 说明
11.0v22.0 或更高以纯 ESM 形式发布,不再支持 v18、v19、v20、v21。
10.0约 v18.12引入将依赖绑定到所需 Node.js 版本的能力。
9.0v18.12 或更高不再支持 Node.js v16。
8.0v16.14 或更高可通过独立脚本等方式在无 Node.js 环境下安装。
7.0v14.0 或更高不再支持 Node.js 12。
6.0v12.17 或更高不再支持 Node.js 10。
5.0约 v12.0最后一个支持 Node.js 12 的早期版本。

pnpm环境变量配置

配置 PNPM_HOME 环境变量,将上面应用解压安装到这里

Image text

验证是否安装成功

pnpm -v

Image text

pnpm特殊指定目录,默认都在PNMP_HOME下面

配置项作用说明配置命令示例对应关系
store-dir全局依赖仓库。所有下载过的依赖包都存放在这,可以把它指定到一个大容量的硬盘分区。pnpm config set store-dir "D:\.pnpm-store"pnpm store path 命令会显示此路径。
global-dir全局包的安装目录。所有通过 pnpm add -g 安装的包都会放在这里。pnpm config set global-dir "D:\.pnpm-global"PNPM_HOME 环境变量在较新版本中可能直接影响此目录。
global-bin-dir全局命令的存放目录。全局包提供的可执行命令(如 pnpm 自身)会放在这里。需要将此路径添加到系统的 PATH 变量中,才能在终端里直接调用这些全局命令。pnpm config set global-bin-dir "D:\.pnpm-global\bin"pnpm setup 通常会自动处理此路径。
cache-dir存储 pnpm 下载的包缓存,可以加速后续安装。pnpm config set cache-dir "D:\.pnpm-cache"-
  • pnpm config set store-dir "D:\nodejs\pnpm-cache"

存量npm项目切换pnpm

  • 清理环境

删除现有项目中的 node_modules 文件夹和 package-lock.json 文件

  • pnpm install

pnpm 会根据 package.json 生成高效的 node_modules 结构并创建 pnpm-lock.yaml 文件

pnpm镜像配置

  • pnpm config set registry https://registry.npmmirror.com
  • pnpm pnpm config get registry
最近更新: 2026/4/29 13:53
Contributors: kcnf, Copilot
Prev
npm比较