PNPM 高效入门:安装配置一本通

news2024/9/20 14:50:14

PNPM高效入门:安装配置一本通

  • 引言
  • Pnpm 简介
  • 安装 PNPM
    • 全局安装(推荐)
    • 使用 nvm(Node Version Manager)
  • 配置PNPM
  • 使用PNPM管理项目
    • 初始化项目
  • 添加依赖
    • 快速安装所有依赖
    • 查看安装的包
  • 优化与故障排除
  • PNPM与持续集成/持续部署(CI/CD)
  • PNPM 的独特优势
  • 结语

在这里插入图片描述

引言

在 Node.js 生态系统中,包管理器扮演着至关重要的角色,而 PNPM 作为新一代的包管理利器,正以其独特的硬链接和存储策略,以及对依赖地狱的有效解决,逐渐成为开发者的新宠。PNPM 结合了 npm 的广泛生态与 Yarn 的高效管理,提供了更快的安装速度和更节省磁盘空间的解决方案。本文将手把手教你 PNPM 的安装、配置及其核心功能,让你在快节奏的开发环境中游刃有余。

pnpm 官网

Pnpm 简介

PNPM(Package Manager),发音为“ pineapple ”,是一个快速、节省磁盘空间的包管理器,它通过引入“内容可寻址的文件系统”概念,确保每次安装都复用相同的依赖,从而大大减少了节点模块的存储占用。PNPM 同时兼容 npm 的 package.jsonpackage-lock.json 格式,无缝衔接现有项目。

安装 PNPM

全局安装(推荐)

使用 npm 安装 PNPM 是最常见的方法,适用于大多数操作系统:

npm install -g pnpm

安装成功后,可以使用下面的命令确认 pnpm 是否安装成功:

pnpm --version

出现 pnpm 的版本信息即为安装成功,如下图:

在这里插入图片描述

使用 nvm(Node Version Manager)

如果你使用 nvm 管理 Node.js 版本,可以通过安装特定版本的 Node.js 来自动获得 PNPM ,因为 nvm 的某些版本集成了 PNPM 。

配置PNPM

PNPM 的配置文件为 .npmrc ,位于项目根目录或用户主目录。默认情况下 PNPM 工作良好,但你可以根据需要调整配置,例如修改仓库源:

registry=https://registry.npm.taobao.org

除了基本配置外,PNPM 还支持一系列高级选项,用于优化项目性能和开发体验。

  • Shrinkwrap:类似于 npm 的 package-lock.json ,PNPM 使用 pnpm-lock.yaml 来锁定依赖版本,确保跨环境一致性。通过运行 pnpm lock ,可以生成或更新此文件。

  • Workspace 管理:PNPM 强大的 workspace 功能允许你在一个 monorepo(单一仓库多项目)中管理多个包,简化跨包依赖和统一版本控制。

    pnpm workspace <package_name> add <dependency>
    
  • Parallelization(并行处理):PNPM 在安装过程中充分利用系统资源,通过并行下载和安装包,进一步加速过程。

使用PNPM管理项目

初始化项目

在新项目目录下,运行以下命令初始化 PNPM 环境:

pnpm init

添加依赖

添加依赖与 npm 相似,但更高效:

pnpm add <package_name>

快速安装所有依赖

PNPM 安装速度极快,且首次安装后再次安装几乎瞬间完成:

pnpm install

查看安装的包

查看已安装的包及其版本:

pnpm ls

优化与故障排除

  • 清理缓存:随着时间推移,PNPM 的缓存可能会占用大量磁盘空间。使用 pnpm cache clean 或指定 --force 参数来彻底清理。
  • 解决依赖冲突:当遇到依赖版本不一致导致的问题时,检查 pnpm-lock.yaml 文件,理解冲突来源,并通过调整 resolutions 字段强制指定依赖版本。

PNPM与持续集成/持续部署(CI/CD)

在 CI 环境中,PNPM 同样表现出色。由于其高效和一致性,可以显著减少构建时间和资源消耗。

  • CI 中的安装命令:确保 CI 脚本中使用 pnpm install --frozen-lockfile 来防止意外的依赖变更。
  • Docker 集成:在 Docker 镜像中预安装 PNPM ,可以进一步加速 CI 流程。使用轻量级的基础镜像,并在 Dockerfile 中添加安装命令。

PNPM 的独特优势

  • 节省空间:通过硬链接和文件复制,避免重复的依赖。
  • 一致性:确保所有开发者的依赖树完全相同。
  • 速度快:利用本地缓存,后续安装近乎瞬时。
  • 兼容性:与 npm 和 Yarn 的 lock 文件兼容。

基于以上的这些 pnpm 独特优势,博主本人在工作和学习上,使用 pmpm 会多一点,也更推荐大家使用 pnpm ,但是具体使用情况需要根据自身的喜好去选定。

结语

PNPM 以其独特的优势,正在逐步改变我们管理 Node.js 项目依赖的方式。通过本篇文章的学习,相信你已经掌握了 PNPM 的安装、配置以及基本操作,准备好迎接一个更为高效、整洁的开发环境。PNPM 不仅能够提升你的开发效率,还能有效解决长期困扰开发者的依赖问题,是每个现代 Node.js 开发者不可或缺的工具。现在,带着这份攻略,开启你的高速开发之旅吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nacos 适配瀚高数据库、ARM 架构

下载nacos源码: https://github.com/alibaba/nacos/tree/2.3.1 瀚高技术文档 1、修改pom.xml 根目录nacos-all => pom.xml<dependencyManagement><dependency><groupId>com.highgo</groupId><artifactId>HgdbJdbc</artifactId><…

安全防御:防火墙基本模块

目录 一、接口 1.1 物理接口 1.2 虚拟接口 二、区域 三、模式 3.1 路由模式 3.2 透明模式 3.3 旁路检测模式 3.4 混合模式 四、安全策略 五、防火墙的状态检测和会话表技术 一、接口 1.1 物理接口 三层口 --- 可以配置IP地址的接口 二层口&#xff1a; 普通二层…

linux的学习(四):磁盘,进程,定时,软件包的相关命令

简介 关于磁盘管理&#xff0c;进程管理&#xff0c;定时任务&#xff0c;软件包管理的命令的使用 磁盘管理类命令 du du 目录名&#xff1a; 查看文件和目录占用的磁盘空间 参数&#xff1a; -h&#xff1a;可以看到大小的单位&#xff0c;g,mb-a&#xff1a;还可以看到文…

Mapboxgl 生成飞行动画GIF

更多精彩内容尽在数字孪生平台&#xff0c;关注公众号【sky的数孪技术】&#xff0c;技术交流、源码下载请添加VX&#xff1a;digital_twin123 根据两点生成动画的工具。 首先&#xff0c;找到你想要开始的视图&#xff0c;点击“设置起点视图”&#xff0c;然后调整到目的视图…

Android中RecyclerView使用详解(一)

目录 概述优点列表布局RecyclerView一、创建RecyclerView并且在布局中绑定二、实现RecyclerView单个item的布局三、给RecyclerView写一个对应的适配器Adapter1.创建自定义的ViewHolder2.继承Adapter&#xff0c;泛型使用我们自定义的ViewHolder3.重写Adapter的三个方法onCreate…

如何提取视频中的音频?提取音频的几种方法

如何提取视频中的音频&#xff1f;提取视频中的音频&#xff0c;是许多人在处理多媒体内容时常遇到的需求。这一过程不仅仅是简单地从视听媒体中抽离音频部分&#xff0c;它背后蕴含着许多技术上的挑战和创意上的可能性。通过提取音频&#xff0c;你可以更方便地利用视频中的声…

网络安全——防御(防火墙)带宽以及双机热备实验

12&#xff0c;对现有网络进行改造升级&#xff0c;将当个防火墙组网改成双机热备的组网形式&#xff0c;做负载分担模式&#xff0c;游客区和DMZ区走FW3&#xff0c;生产区和办公区的流量走FW1 13&#xff0c;办公区上网用户限制流量不超过100M&#xff0c;其中销售部人员在其…

docker镜像导出与导入

布置程序出问题了&#xff0c;拉不下来镜像 程序的配置文件里面有镜像的名字 docker pull ubuntu/squid:latest 我是本地下载了镜像&#xff0c;使用本地的镜像导出 导出镜像使用 docker 导出导入镜像 要在Docker中导出和导入镜像&#xff0c;您可以使用docker save命令来导…

《昇思25天学习打卡营第5天|10使用静态图加速》

写在前面 跳过了模型训练和保存两节&#xff0c;模型训练的例子已经学习过&#xff0c;都是重复的内容&#xff0c;不进行详细的学习了&#xff0c;除非要使用类似的函数。 因此接下来开始学习初学教程的最后一节&#xff1a;使用静态图加速&#xff0c;希望能学习到一些内容。…

【分布式系统】CephFS文件系统之MDS接口详解

目录 一.服务端操作 1.在管理节点创建 mds 服务 2.查看各个节点的 mds 服务&#xff08;可选&#xff09; 3.创建存储池&#xff0c;启用 ceph 文件系统 4.查看mds状态&#xff0c;一个up&#xff0c;其余两个待命&#xff0c;目前的工作的是node01上的mds服务 5.创建用户…

从零开始搭建vue框架

流程图 开始 | |-- 2013 年底&#xff0c;尤雨溪开始开发 Vue 框架&#xff0c;最初命名为 Seed&#xff0c;后更名为 Vue | |-- 2013 年 12 月&#xff0c;Vue 0.6.0 版本 | |-- 2014 年 1 月 24 日&#xff0c;Vue 0.8.0 版本发布 | |-- 2014 年 2 月 25 日&#xff0c;…

数据中心内存RAS技术发展背景

随着数据量的爆炸性增长和云计算的普及&#xff0c;数据中心内存的多比特错误及由无法纠正错误(UE)导致的停机问题日益凸显&#xff0c;这些故障不仅影响服务质量&#xff0c;还会带来高昂的修复或更换成本。随着工作负载、硬件密度以及对高性能要求的增加&#xff0c;数据中心…

408数据结构-图的应用3-有向无环图、拓扑排序 自学知识点整理

前置知识&#xff1a;表达式&#xff0c;图的遍历 有向无环图描述表达式 有向无环图&#xff1a;若一个有向图中不存在环&#xff0c;则称为有向无环图&#xff0c;简称 D A G DAG DAG图 。 &#xff08;图片来自王道考研408数据结构2025&#xff09; 由王道考研-咸鱼学长的讲…

进销存管理系统设计

进销存管理系统&#xff08;Inventory Management System&#xff0c;简称IMS&#xff09;是一种帮助企业有效管理商品的入库、出库及库存情况的信息系统。良好的进销存管理系统能够提升库存周转率、减少库存成本、提高订单处理效率&#xff0c;从而增强企业的市场竞争力。以下…

SD card知识总结

一、基础知识 1、简介 SD Card 全称(Secure Digital Memory Card)&#xff0c;日本电子公司松下&#xff08;Panasonic&#xff09;、瑞典公司爱立信&#xff08;Ericsson&#xff09;、德国公司西门子&#xff08;Siemens&#xff09;共同开发的&#xff0c;于1999年发布根…

超声波清洗机排行榜,热门超声波清洗机哪个更值得入手?

用超声波清洗机洗眼镜已经不算是什么惊奇的事情了&#xff0c;并且很多戴眼镜的朋友更是因为超声波清洗机能够清洗眼镜而慕名前来。毕竟现在洗眼镜能够用超声波清洗机代劳实在是一件很省心的事情&#xff01;~但是&#xff0c;对于超声波清洗机你们真的了解吗&#xff1f;因此本…

从零开始学习cartographer源码 | 番外:如何在wsl内使用clion阅读cartographer源码

从零开始学习cartographer源码 | 番外&#xff1a;如何在wsl内使用clion阅读cartographer源码 安装WSL2及Clion安装WSL2-Ubuntu20.04安装Clion安装ROS 安装Cartographer一键安装Cartographer 在Clion打开cartographer工程安装gdb手动创建CMakeLists.txt打开项目配置wsl工具链配…

一款简单的音频剪辑工具

Hello&#xff0c;大家好呀&#xff0c;我是努力搬砖的小画。 今天小画给大伙分享一款强大的音频剪辑工具--【剪画】&#xff0c;无需下载就能使用&#xff0c;支持对MP3、M4A、AAC等多种格式文件进行剪辑、分割、拼接、混音、变声、淡入淡出、音频格式转换、视频转音频、消除…

网关设备BL122实现Modbus RTU/TCP转Profinet协议

Modbus与Profinet是两种广泛应用于工业自动化领域的通信协议&#xff1a;Modbus因其简单性和兼容性&#xff0c;在许多工业设备中得到广泛应用&#xff1b;而Profinet提供了高速、高精度的通信能力&#xff0c;适合于复杂控制系统和实时应用&#xff0c;但两者之间的差异导致了…

安防视频监控/视频汇聚EasyCVR平台浏览器http可以播放,https不能播放,如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…