关于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!