pnpm安装指南

只看安装的->点击跳转

pnpm是什么?

官方是这么描述的

Pnpm 是 Node.js 的一个替代包管理器,它是 npm 的替代品,但是更快更有效。

有多快? 快三倍 ! 看看这里的基准。

为什么更有效率?

当您安装一个包时,我们将它保存在您机器上的全局存储中,然后从它创建一个硬链接,而不是复制它。对于每个模块版本,磁盘上只保留一个副本。

tips:关于这段详细的描述感兴趣的可以点击这个链接-> 为什么使用pnmp

我为什么使用?

  1. pnpmnpm更快
  2. pnpm可以避免npm那样在每个项目中都生成一遍node_modules的情况,它有一个全局仓库来帮助你一次解决这个烦恼。
  3. 节省磁盘空间,因为他只需要一个全局仓库。
  4. 对新事物感兴趣

如何安装

官方安装

官方文档给出的指令是:

如果你没有node.js环境也可以执行这行命令

On Windows

powershell 复制代码
iwr https://get.pnpm.io/install.ps1 -useb | iex

On linux systems

shell 复制代码
curl -fsSL https://get.pnpm.io/install.sh | sh -

如果没有安装 curl,可以使用 wget:

shell 复制代码
wget -qO- https://get.pnpm.io/install.sh | sh -

因为我是windows用户,因此我使用了第一条指令

但你大概率会被告知

powershell 复制代码
'iwr' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

通过npm 来安装

你需要一个node环境和npm来支持

shell 复制代码
npm install -g pnpm

or

npm install -g @pnpm/exe

使用 pnpm -v 来查看pnpm的版本

其实到这里就可以结束了,pnpm确实已经安装好了

但如果你想要升级pnpm,只能通过npm来重新安装新版本的pnpm

那么怎么通过pnpm来代替npm呢?

pnpm的全局配置

如果你想要使用pnpm来代替npm进行命令输出,那么你必须配置pnpm的全局配置,否则会看到如下报错:

powershell 复制代码
ERR_PNPM_NO_GLOBAL_BIN_DIR  Unable to find the global bin directory

Run "pnpm setup" to create it automatically, or set the global-bin-dir setting, or the PNPM_HOME env variable. The global bin directory should be in t
he PATH.

即使你使用pnpm setup很大概率还是出现同样的错误。因为他只是帮你配置了PATH环境,而没有帮你进行全局配置

你需要按照以下步骤执行
ini 复制代码
# pnpm 全局 bin 路径

pnpm config set global-bin-dir "C:\Users\18446\AppData\Local\pnpm\.pnpm-bin-dir"
 
# pnpm 全局缓存路径
pnpm config set cache-dir "C:\Users\18446\AppData\Local\pnpm\.pnpm-cache"
 
# pnpm 全局安装路径
pnpm config set global-dir "C:\Users\18446\AppData\Local\pnpm\.pnpm-global"
 
# pnpm 创建 pnpm-state.json 文件的目录
pnpm config set state-dir "C:\Users\18446\AppData\Local\pnpm\.pnpm-state"
 
# pnpm 全局仓库路径(类似 .git 仓库)
pnpm config set store-dir "C:\Users\18446\AppData\Local\pnpm\.pnpm-store"

如果你没有这些文件夹需要手动创建

配置全局环境


配置完成之后就可以使用了。

config文件位置

Windows 上:一般都在 ~/AppData/Local/pnpm/config/rc

使用pnpm

当你使用pnpm时,它会自动在你所设置的bin目录下生成二进制文件。

例如安装typescript

powershell 复制代码
pnpm i -g typescript
# i install
# -g global 全局安装
指令
powershell 复制代码
# 安装
pnpm i/install
# 添加
pnpm add xxxx
# 更新所有依赖
pnpm up
# -g全局安装
设置源

如果你不设置他就会使用你的npm设置的源。

shell 复制代码
//查看源
pnpm config get registry
//切换npmjs镜像源
pnpm config set registry https://registry.npmmirror.com/
//切换淘宝源
pnpm config set registry http://registry.npm.taobao.org 
相关推荐
duandashuaige13 小时前
解决用electron打包Vue工程(Vite)报错electron : Failed to load URL : xxx... with error : ERR _CONNECTION_REFUSED
javascript·typescript·electron·npm·vue·html
weixin_405023371 天前
包资源管理器NPM 使用
前端·npm·node.js
小于小于09122 天前
npx 与 npm 区别
前端·npm·node.js
亮子AI3 天前
【npm】npm install 产生软件包冲突怎么办?(详细步骤)
前端·npm·node.js
skywalk81633 天前
pnpm(‌P‌erformance ‌N‌ode ‌P‌ackage ‌Manager‌)包管理工具在FreeBSD系统下的安装使用
人工智能·pnpm·freebsd·iflow
梵得儿SHI3 天前
Vue 开发环境搭建全指南:从工具准备到项目启动
前端·javascript·vue.js·node.js·pnpm·vue开发环境·nvm版本管理
Rhys..4 天前
JS - npm init
开发语言·javascript·npm
夏天想4 天前
复制了一个vue的项目然后再这个基础上修改。可是通过npm run dev运行之前的老项目,发现运行的竟然是拷贝后的项目。为什么会这样?
前端·vue.js·npm
一枚前端小能手4 天前
📦 从npm到yarn到pnpm的演进之路 - 包管理器实现原理深度解析
前端·javascript·npm
scorpion_V6 天前
VScode 中执行 npm 报错的问题
ide·vscode·npm