pnpm的安装与使用

官网:安装 | pnpm中文文档 | pnpm中文网

一、pnpm优势:

1.节省磁盘空间

假设你有一个依赖包 example-package,包含 100 个文件。如果你使用 npm 安装在 100 个项目中,你的硬盘上会有 100 份 example-package,每份都占用同样的空间。

然而,如果是使用 pnpm,

(1)example-package 的所有文件会被存放在全局存储位置。

(2)当你在一个项目中安装 example-package 时,pnpm 会创建指向全局存储中该包的硬链接。

(3)如果 example-package 发布了一个新版本,且只有一个文件有改动,pnpm 只会在全局存储中添加那个改动的文件,而不是重新保存所有文件。

2.提升安装速度

安装步骤

(1)解析依赖:确定项目所需的依赖包。这个过程包括读取项目的 package.json 文件,解析其中列出的依赖包及其版本信息,并确定所有需要安装的包及其依赖关系。

(2)检查全局存储:检查全局存储位置中是否已有这些依赖包。如果如果没有,下载并存储到全局位置。如果有,跳过下载步骤。

(3)硬链接:将所有依赖包硬链接到项目的 node_modules 目录

二、下载和使用

1.下载和配置环境

bash 复制代码
npm install -g pnpm

以下列表列出了以往的 pnpm 版本和对应支持的 Node.js 版本。

Node.js pnpm 7 pnpm 8 pnpm 9
Node.js 12
Node.js 14 ✔️
Node.js 16 ✔️ ✔️
Node.js 18 ✔️ ✔️ ✔️
Node.js 20 ✔️ ✔️ ✔️
bash 复制代码
#检查是否安装成功
pnpm --version

如果显示没有pnpm这个命令,要配置一下系统的环境变量。由于是全局安装的pnpm,所以可以在npm的全局安装路径找到。提示:官网没给出解决方案,我的是出问题了,chatgpt问出来的。

bash 复制代码
$ npm config get prefix
D:\GlobalNodeModules

然后再系统环境变量中的path新增D:\GlobalNodeModules

设置好后,可能需要关机重启。

2.设置源

bash 复制代码
//查看源
pnpm config get registry 
//切换淘宝源
pnpm config set registry http://registry.npm.taobao.org 

3.设置 pnpm 存储路径

bash 复制代码
#查看存储路径,默认是C:\Users\10938\AppData\Local\pnpm\store\v3
pnpm store path

#修改(官网:pnpm config set store-dir /path/to/.pnpm-store)
pnpm config set store-dir  D:/pnpm/.pnpm-store

4.基本命令

bash 复制代码
#1.安装依赖
pnpm install

#2.安装特定包
pnpm add <package>
#全局安装特定包
pnpm add -g <package>

#3.移除依赖 
pnpm remove <package>
pnpm remove <package> --global

#4.更新依赖
pnpm up   //更新所有依赖项
pnpm update <package>
pnpm update <package> --global

#5.检查过时的依赖
pnpm outdated

#6.运行脚本
pnpm run <script>

#7.查看配置
pnpm config get <key>

#8.设置配置
pnpm config set <key> <value>

#9.查看包信息
pnpm info <package>

#10.链接全局包
pnpm link <package>

#11.取消链接全局包
pnpm unlink <package>
相关推荐
jjw_zyfx2 小时前
成熟的前端vue vite websocket,Django后端实现方案包含主动断开websocket连接的实现
前端·vue.js·websocket
乌夷4 小时前
使用spring boot vue 上传mp4转码为dash并播放
vue.js·spring boot·dash
khalil5 小时前
浅析TS枚举与位运算的结合
前端·typescript
苹果酱05676 小时前
2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)
java·vue.js·spring boot·mysql·课程设计
Deepsleep.6 小时前
react和vue的区别之一
javascript·vue.js·react.js
zqlcoding6 小时前
使用el-table表格动态渲染表头数据之后,导致设置fixed的列渲染出现问题
前端·javascript·vue.js
爱吃的强哥6 小时前
vue3 使用 vite 管理多个项目,实现各子项目独立运行,独立打包
前端·javascript·vue.js
涵信6 小时前
第十节:性能优化高频题-虚拟DOM与Diff算法优化
javascript·vue.js·性能优化
拖孩6 小时前
【Nova UI】十一、组件库中 Icon 组件的测试、使用与全局注册全攻略
前端·javascript·vue.js·ui·sass
凉豆菌8 小时前
在html中如何创建vue自定义组件(以自定义文件上传组件为例,vue2+elementUI)
vue.js·elementui·html