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!

相关推荐
Csvn2 小时前
框架性能优化
前端
回眸&啤酒鸭4 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013844 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员4 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子4 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端
IT_陈寒4 小时前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
guslegend5 小时前
脚手架原理与本地调试:从 bin 软链接到 npm link
前端·npm·node.js·脚手架·前端工程化
海码事务所6 小时前
Google Play 新个人开发者账号上架指南:12 人连续 14 天封闭测试怎么做?
前端
田威AI6 小时前
图片内文字翻译的规格:输入输出、保真、自动化、时间与费用
前端·计算机视觉
不可能片场6 小时前
命令行中文变问号 我用环境变量救了场
前端·electron