Pnpm的使用

pnpm 是一个快速、节省磁盘空间的 Node.js 包管理工具,相比 npm 和 yarn,它通过硬链接 和符号链接 技术优化了依赖安装效率。以下是 pnpm 的核心用法和常见场景说明:


1. 安装 pnpm

确保已安装 Node.js,然后通过以下命令安装 pnpm:

bash

|---|-----------------------------------|
| | npm install -g pnpm |
| | # 或通过核心包管理器(如 Homebrew、Scoop)安装 |


2. 核心命令

初始化项目

bash

|---|-------------------------------|
| | pnpm init # 创建 package.json |

安装依赖
  • 安装所有依赖 (根据 package.json):

    bash

    |---|------------------------------|
    | | pnpm install # 或简写为 pnpm i |

  • 安装特定包 :

    bash

    |---|------------------------------------------------|
    | | pnpm add lodash # 添加到 dependencies |
    | | pnpm add -D typescript # 添加到 devDependencies |
    | | pnpm add -g pnpm # 全局安装包 |

  • 安装指定版本 :

    bash

    |---|-------------------------|
    | | pnpm add react@18.2.0 |

更新依赖
  • 更新所有依赖 :

    bash

    |---|---------------------------|
    | | pnpm update # 或 pnpm up |

  • 更新特定包 :

    bash

    |---|----------------------|
    | | pnpm update lodash |

卸载依赖

bash

|---|-----------------------------------------------------|
| | pnpm remove lodash # 从 dependencies 中移除 |
| | pnpm remove -D typescript # 从 devDependencies 中移除 |

运行脚本

bash

|---|-------------------------------------------------------|
| | pnpm run dev # 运行 package.json 中 scripts 定义的 dev 脚本 |
| | pnpm dev # 简写(如果脚本名无冲突) |

全局命令
  • 查看全局安装的包 :

    bash

    |---|--------------------------|
    | | pnpm list -g --depth=0 |

  • 升级 pnpm 自身 :

    bash

    |---|--------------------|
    | | pnpm add -g pnpm |


3. pnpm 的优势

节省磁盘空间
  • 硬链接 :同一依赖的不同版本在全局存储(~/.pnpm-store)中只保存一份,项目通过符号链接引用。
  • 扁平化依赖 :避免 node_modules 嵌套过深(类似 yarn 的扁平化,但更高效)。
性能优化
  • 并行安装:利用多线程加速依赖下载。
  • 增量安装:仅更新变更的依赖,而非全部重新安装。
安全性
更新依赖
卸载依赖

bash

|---|-----------------------------------------------------|
| | pnpm remove lodash # 从 dependencies 中移除 |
| | pnpm remove -D typescript # 从 devDependencies 中移除 |

运行脚本

bash

|---|-------------------------------------------------------|
| | pnpm run dev # 运行 package.json 中 scripts 定义的 dev 脚本 |
| | pnpm dev # 简写(如果脚本名无冲突) |

全局命令

3. pnpm 的优势

节省磁盘空间
性能优化
安全性
  • 严格依赖隔离 :通过符号链接确保项目只能访问其声明的依赖,避免依赖污染。

    pnpm 是一个快速、节省磁盘空间的 Node.js 包管理工具,相比 npm 和 yarn,它通过硬链接 和符号链接 技术优化了依赖安装效率。以下是 pnpm 的核心用法和常见场景说明:


    1. 安装 pnpm

    确保已安装 Node.js,然后通过以下命令安装 pnpm:

    bash

    |---|-----------------------------------|
    | | npm install -g pnpm |
    | | # 或通过核心包管理器(如 Homebrew、Scoop)安装 |


    2. 核心命令

    初始化项目

    bash

    |---|-------------------------------|
    | | pnpm init # 创建 package.json |

    安装依赖
  • 安装所有依赖 (根据 package.json):

    bash

    |---|------------------------------|
    | | pnpm install # 或简写为 pnpm i |

  • 安装特定包 :

    bash

    |---|------------------------------------------------|
    | | pnpm add lodash # 添加到 dependencies |
    | | pnpm add -D typescript # 添加到 devDependencies |
    | | pnpm add -g pnpm # 全局安装包 |

  • 安装指定版本 :

    bash

    |---|-------------------------|
    | | pnpm add react@18.2.0 |

  • 更新所有依赖 :

    bash

    |---|---------------------------|
    | | pnpm update # 或 pnpm up |

  • 更新特定包 :

    bash

    |---|----------------------|
    | | pnpm update lodash |

  • 查看全局安装的包 :

    bash

    |---|--------------------------|
    | | pnpm list -g --depth=0 |

  • 升级 pnpm 自身 :

    bash

    |---|--------------------|
    | | pnpm add -g pnpm |

  • 硬链接 :同一依赖的不同版本在全局存储(~/.pnpm-store)中只保存一份,项目通过符号链接引用。

  • 扁平化依赖 :避免 node_modules 嵌套过深(类似 yarn 的扁平化,但更高效)。

  • 并行安装:利用多线程加速依赖下载。

  • 增量安装:仅更新变更的依赖,而非全部重新安装。

  • 严格依赖隔离:通过符号链接确保项目只能访问其声明的依赖,避免依赖污染。

相关推荐
dreams_dream2 天前
微信小程序-使用npm包
微信小程序·小程序·npm
周杰伦的稻香2 天前
Hexo 腾讯视频追剧页插件:hexo-tengxun-eucalyptus 安装使用
npm
怒放的生命199111 天前
本地用 pnpm 省磁盘,团队继续用 npm:极简实践
前端·npm·node.js
江屿风14 天前
【Plain Language Large Model】【从浏览器到全栈:一课精通Node.js三剑客】流食般投喂
笔记·前端框架·npm·node.js·js·npx
少年的范儿16 天前
Windows 安装 Node.js 教程:nvm 版本管理 + pnpm 安装配置
windows·npm·node.js
peach16 天前
同样是装依赖,为什么 npm 长成 node_modules,Maven 长成 .m2
npm·node.js·maven
chunyublog18 天前
HDFS 上传文件名空格问题排障教程
前端·javascript·npm
MasonYyp19 天前
安装npm依赖仓库Verdaccio
前端·npm·node.js
jiangliushi620 天前
GPT-6.1 Sol 免费用:PowerShell 装 Codex 报“禁止运行脚本 npm.ps1”?一条命令解决
前端·gpt·npm
Elcker21 天前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm