赞
踩
只看安装的->点击跳转
官方是这么描述的
Pnpm 是 Node.js 的一个替代包管理器,它是 npm 的替代品,但是更快更有效。
有多快? 快三倍! 看看这里的基准。
为什么更有效率?
当您安装一个包时,我们将它保存在您机器上的全局存储中,然后从它创建一个硬链接,而不是复制它。对于每个模块版本,磁盘上只保留一个副本。
tips:关于这段详细的描述感兴趣的可以点击这个链接-> 为什么使用pnmp
pnpm
比npm
更快pnpm
可以避免npm
那样在每个项目中都生成一遍node_modules的情况,它有一个全局仓库来帮助你一次解决这个烦恼。官方文档给出的指令是:
如果你没有node.js环境也可以执行这行命令
On Windows
iwr https://get.pnpm.io/install.ps1 -useb | iex
On linux systems
curl -fsSL https://get.pnpm.io/install.sh | sh -
如果没有安装 curl,可以使用 wget:
wget -qO- https://get.pnpm.io/install.sh | sh -
因为我是windows用户,因此我使用了第一条指令
但你大概率会被告知
'iwr' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
你需要一个node环境和npm来支持
npm install -g pnpm
or
npm install -g @pnpm/exe
使用 pnpm -v
来查看pnpm
的版本
其实到这里就可以结束了,pnpm
确实已经安装好了
但如果你想要升级pnpm
,只能通过npm
来重新安装新版本的pnpm
。
那么怎么通过pnpm来代替npm呢?
如果你想要使用pnpm
来代替npm
进行命令输出,那么你必须配置pnpm
的全局配置,否则会看到如下报错:
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环境,而没有帮你进行全局配置。
# 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"
如果你没有这些文件夹需要手动创建
配置完成之后就可以使用了。
在 Windows
上:一般都在 ~/AppData/Local/pnpm/config/rc
当你使用pnpm时,它会自动在你所设置的bin目录下生成二进制文件。
例如安装typescript
pnpm i -g typescript
# i install
# -g global 全局安装
# 安装
pnpm i/install
# 添加
pnpm add xxxx
# 更新所有依赖
pnpm up
# -g全局安装
如果你不设置他就会使用你的npm设置的源。
//查看源
pnpm config get registry
//切换npmjs镜像源
pnpm config set registry https://registry.npmmirror.com/
//切换淘宝源
pnpm config set registry http://registry.npm.taobao.org
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。