安装pnpm 和报错解决,亲测可行
安装pnpm 和报错解决,亲测可行
pnpm 是一款磁盘空间高效的软件包管理器。
当使用 npm 或 Yarn 时,如果你有 1000个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被存放在一个统一的位置,因此以项目和依赖包的比例来看,使用 pnpm 将节省大量的硬盘空间,并且安装速度也能大大提高,目前,pnpm 已发布 6.8.0 版本,此版本包含许多新功能、性能优化以及错误修复,主要更新内容如下:
- pnpm 号称是同类工具速度的将近 2 倍
- node_modules 中的所有文件均链接自单一存储位置
- pnpm 内置了对单个源码仓库中包含多个软件包的支持
- pnpm 创建的 node_modules 并非扁平结构,因此代码不能对任意软件包进行访问
- pnpm:官网传送门https://pnpm.io/zh/motivation
一、先安装
Node环境(✔️)
npm环境(✔️)
报错信息:
PS E:\frontProject\xingyun-front> npm install -g pnpm
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/pnpm failed, reason: certificate has expired
2_55_072Z-debug-0.log
解决办法:
1,手动设置npm镜像源
有时,npm的默认镜像源可能会出现证书问题。您可以尝试切换到另一个镜像源,例如使用淘宝镜像。可以通过以下命令来设置:
-- 设置镜像
C:\Users\Administrator>npm config set registry https://registry.npm.taobao.org/
-- 获取设置的镜像是否成功
C:\Users\Administrator>npm config get registry
-- 结果
https://registry.npm.taobao.org/
2,清除缓存
-- 清除npm缓存
npm cache clean --force
结果:npm WARN using --force Recommended protections disabled. 这个不是错误,只是一个警告,不影响
3、禁用SSL
虽然不推荐,但您可以暂时禁用SSL验证来解决这个问题。但请注意,这会降低安全性。您可以通过设置npm的 strict-ssl 选项为 false 来实现:
命令:
npm config set strict-ssl false
继续安装 pnpm
继续执行命令:
npm install -g pnpm
结果:
changed 1 package in 3s
1 package is looking for funding
run `npm fund` for details
这个就是安装成功了!!!!
测试pnpm
pnpm -version
但是使用pnmp 还报错
报错信息:
pnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参
阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
\+ pnpm config set registry https://registry.npm.taobao.org/
\+ CategoryInfo : SecurityError: (:) [],PSSecurityException
\+ FullyQualifiedErrorId : UnauthorizedAccess
打开权限
对应这个问题:因为在此系统上禁止运行脚本。有关详细信息,请参 阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
解决办法:
这是由于系统的 PowerShell 执行策略限制了运行脚本的权限,进而导致无法执行 pnpm 命令。你可以根据以下步骤来解决这个问题:
第一步:以管理员身份打开 PowerShell:
以管理员身份打开 PowerShell,然后执行以下命令来修改执行策略为 RemoteSigned:
第二步:更改策略
修改策略命令,可以参考截图
Set-ExecutionPolicy RemoteSigned
-- 选择 Y ,改变策略
Y
再次使用 pnpm 命令
问题解决: pnpm --version
到这里我们就完美解决pnpm !!!!