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

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 的扁平化,但更高效)。
  • 并行安装:利用多线程加速依赖下载。
  • 增量安装:仅更新变更的依赖,而非全部重新安装。
  • 严格依赖隔离:通过符号链接确保项目只能访问其声明的依赖,避免依赖污染。
http://www.lqws.cn/news/199189.html

相关文章:

  • 零基础在实践中学习网络安全-皮卡丘靶场(第十五期-URL重定向模块)
  • LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
  • Python爬虫实战:研究Unirest库相关技术
  • VNA校准基础知识
  • Mac版Visual Studio Code Copilot 无法使用的解决方法
  • Linux(生产消费者模型/线程池)
  • 数据库管理-第334期 Oracle Database 23ai测试版RAC部署文档(20250607)
  • MVC分层架构模式深入剖析
  • AI驱动的B端页面革命:智能布局、数据洞察的底层技术解析
  • JAVA国际版二手交易系统手机回收好物回收发布闲置商品系统源码支持APP+H5
  • C++--list的使用及其模拟实现
  • [C++] list双向链表使用方法
  • 嵌入式学习笔记 - freeRTOS vTaskPlaceOnEventList()函数解析
  • wpf的converter
  • 【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
  • Puppeteer API
  • 每日Prompt:治愈动漫插画
  • ubuntu20使用自主探索算法explore_lite实现机器人自主探索导航建图
  • Keil开发STM32生成hex文件/bin文件
  • 数据结构之栈
  • 《绩效管理》要点总结与分享
  • 大数据(2) 大数据处理架构Hadoop
  • Linux(13)——Ext系列文件系统
  • jenkins gerrit-trigger插件配置
  • Python Copilot【代码辅助工具】 简介
  • 数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握)
  • Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
  • SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
  • 阿里云MaxCompute入门
  • Fetch与Axios:区别、联系、优缺点及使用差异