nvm 安装pnpm的异常解决

关于nvm

如果你是用nvm来管理node版本,正常情况下你的nvm文件夹下是有多个node版本的,像这样:

一般我们通过nvm ls命令就可以查到当前系统中安装的node版本,如果是要切换node版本就用nvm use 18.19.0类似这样的命令。

这里加一个知识点,记住,后面要考。

node的环境变量

现在问题来了,我要安装pnpm,但pnpm只能安装在18.12以上版本,否则它会提示这个:

arduino 复制代码
This version of pnpm requires at least Node.js v18.12

安装pnpm

首先你要切到node版本v18.12以上,然后全局安装就好了:

复制代码
npm install -g pnpm

通过pnpm -v检查一下是否安装成功。

遇到的问题

正常情况下按上述步骤我是可以用的,结果安装失败,我的环境变量配置的是c:\Program Files\nodejs\node_global\node_modules,但我在安装pnpm时npm install -g pnpm总是安装在这个位置D:\Program Files\nodejs\node_global,通过AI找了下原因,原来是由于环境变量的配置和 npm 的全局安装路径设置之间存在冲突或不一致导致的。一般来说,npm 会根据 npm config 中的配置来决定全局包的安装位置。你可以通过以下步骤检查和修正这个问题:

1、检查 npm 的配置:使用以下命令查看当前的全局安装路径:

arduino 复制代码
npm config get prefix

结果显示的是 D:\Program Files\nodejs\node_global,说明 npm 的全局安装路径被设置为该位置。你可以通过以下命令修改它:

swift 复制代码
npm config set prefix "C:\Program Files\nodejs\node_global"

2、检查环境变量 :在 Windows 中,你的环境变量 PATH 中应该包含正确的 Node.js 和 npm 安装路径,确保 npm 可以从正确的目录找到全局包。可以检查下 PATH 变量是否有多个 Node.js 相关路径。

3、重新安装pnpm : 在更新了 npm config 之后,再次尝试安装 pnpm:

复制代码
npm install -g pnpm

4、确认路径: 安装完成后,可以通过 npm list -g pnpm 来确认 pnpm 是否正确安装在你期望的目录。

新的问题

现在pnpm已经安装在了C:\Program Files\nodejs\node_global下面,但是我在用pnpm i命令时,仍然提示:

ini 复制代码
pnpm i pnpm : 无法加载文件 C:\Program Files\nodejs\node_global\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

这个错误是因为 PowerShell 的执行策略(Execution Policy)默认情况下不允许运行脚本,特别是未签名的脚本。你可以通过修改 PowerShell 的执行策略来允许脚本的运行。

我看了一眼vscode,果然新开的控制台是powershell,来吧,办它!

解决步骤

1、打开 PowerShell 以管理员身份

  • 在 Windows 开始菜单中,搜索 "PowerShell"。

  • 右键点击 "Windows PowerShell",选择 "以管理员身份运行"。

2、检查当前执行策略:在 PowerShell 中输入以下命令,查看当前的执行策略:

sql 复制代码
Get-ExecutionPolicy

如果返回值是 Restricted,表示不允许执行任何脚本。

3、修改执行策略

将执行策略更改为 RemoteSigned ByPass,这两者允许执行本地脚本,并且只有从互联网下载的脚本需要签名。运行以下命令:

javascript 复制代码
Set-ExecutionPolicy RemoteSigned

或者:

javascript 复制代码
Set-ExecutionPolicy ByPass

选择 RemoteSigned 是较为安全的选择,它允许本地脚本执行,但需要从网上下载的脚本进行签名。

4、确认更改

执行该命令时,会提示确认更改执行策略,输入 Y 并按回车确认。

5、重新运行 pnpm 命令

修改执行策略后,关闭 PowerShell 窗口并重新打开一个新的 PowerShell 窗口。然后,再次尝试运行 pnpm i 命令:

css 复制代码
pnpm i

这下终于丝滑了,顺利下载依赖,nice!

相关推荐
可问春风_ren28 分钟前
前端文件上传详细解析
前端·ecmascript·reactjs·js
羊小猪~~1 小时前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3
晚风资源组2 小时前
CSS文字和图片在容器内垂直居中的简单方法
前端·css·css3
Miketutu3 小时前
Flutter学习 - 组件通信与网络请求Dio
开发语言·前端·javascript
光影少年4 小时前
前端如何调用gpu渲染,提升gpu渲染
前端·aigc·web·ai编程
Surplusx5 小时前
运用VS Code前端开发工具完成网页头部导航栏
前端·html
小宇的天下5 小时前
Calibre 3Dstack --每日一个命令day13【enclosure】(3-13)
服务器·前端·数据库
一只小bit6 小时前
Qt 文件:QFile 文件读写与管理教程
前端·c++·qt·gui
午安~婉6 小时前
整理知识点
前端·javascript·vue
军军君016 小时前
Three.js基础功能学习十二:常量与核心
前端·javascript·学习·3d·threejs·three·三维