Pnpm的使用

pnpm 是一个快速、节省磁盘空间的 Node.js 包管理工具,相比 npmyarn,它通过硬链接符号链接 技术优化了依赖安装效率。以下是 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 包管理工具,相比 npmyarn,它通过硬链接符号链接 技术优化了依赖安装效率。以下是 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 的扁平化,但更高效)。

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

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

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

相关推荐
不倒翁玩偶21 小时前
npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
前端·npm·node.js
Hello.Reader2 天前
Flink 文件系统通用配置默认文件系统与连接数限制实战
vue.js·flink·npm
-凌凌漆-2 天前
【npm】npm的-D选项介绍
前端·npm·node.js
咔咔一顿操作4 天前
轻量无依赖!autoviwe 页面自适应组件实战:从安装到源码深度解析
javascript·arcgis·npm·css3·html5
aidou13145 天前
Visual Studio Code(VS Code)安装步骤
vscode·npm·node.js·环境变量
全栈小55 天前
【前端】win11操作系统安装完最新版本的NodeJs运行npm install报错,提示在此系统上禁止运行脚本
前端·npm·node.js
DevOps探索之旅6 天前
Hadess从入门到精通,如何详细管理Npm制品
npm·hadess·国产开源制品管理工具·一文上手
一心赚狗粮的宇叔7 天前
VScode常用扩展包&Node.js安装及npm包安装
vscode·npm·node.js·web
嘿是我呀7 天前
【用npm安装node时报错“npm 无法加载文件”】
前端·npm·node.js
Hexene...7 天前
【前端Vue】npm install时根据新的状态重新引入实际用到的包,不引入未使用到的
前端·vue.js·npm