You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows环境下已安装Node.js 22.12.0,但Vite持续检测到Node.js 18.20.5导致启动失败

Windows环境下已安装Node.js 22.12.0,但Vite持续检测到Node.js 18.20.5导致启动失败

这种情况我之前在Windows上用nvm4w管理Node版本时也踩过坑,大概率是终端/编辑器的Node环境没有真正切换到位,或者是环境变量、缓存残留导致的。给你几个针对性的排查和解决步骤,按顺序试应该能搞定:


1. 先确认nvm的当前激活版本是否正确

首先打开你用来启动项目的终端(别用编辑器内置的,先单独开系统PowerShell),运行以下命令:

  • 查看所有已安装的Node版本:nvm list
    👉 重点看版本前面的*号,必须标在22.12.0上,说明这个版本是当前激活的
  • 如果星号不在22.12.0上,手动切换:nvm use 22.12.0
  • 再验证:node -vnpm -v,确保返回的是22.12.0对应的版本(Node22.x自带的npm一般是10.x左右)

⚠️ 注意:如果你安装nvm时用了管理员权限,那切换版本也得用管理员PowerShell,不然可能切换失败。


2. 检查系统环境变量的优先级

旧的Node18路径可能还在系统环境变量里,而且优先级比nvm的高:

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 系统变量Path列表里,找有没有类似C:\Program Files\nodejs的旧Node安装路径
    • 如果有,把它移到nvm的路径(C:\nvm4w\nodejs)下面,或者直接删除
  • 改完之后,必须关闭所有终端和编辑器,重新打开,环境变量才会生效

3. 排查编辑器内置终端的环境问题

很多人用VS Code之类的编辑器,内置终端可能没加载最新的环境变量:

  • 完全关闭编辑器(别最小化,要彻底退出)
  • 重新打开编辑器,在内置终端里运行node -v,确认是22.12.0
  • 如果还是不对,可以去编辑器设置里,把终端的默认路径改成系统自带的PowerShell(比如C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe),避免用自定义的终端路径

4. 彻底清理项目的依赖和缓存

除了你已经做的,还要清理Vite的本地缓存:
在项目根目录的终端里运行(PowerShell命令):

# 删除node_modules和锁文件
Remove-Item node_modules -Recurse -Force
Remove-Item package-lock.json -Force
# 清理npm缓存
npm cache clean --force
# 重新安装依赖
npm install

5. 检查npm的Node版本绑定

有时候npm会残留旧的Node版本配置:

  • 运行npm config get node,如果返回18.20.5,就执行npm config delete node
  • 关闭终端重新打开,再验证node版本

6. 终极办法:重启电脑

Windows的环境变量缓存有时候很顽固,改完之后必须重启才能完全刷新。重启后先打开终端确认node -v是22.12.0,再进入项目运行npm run dev


我当时遇到的情况是VS Code内置终端没加载新环境变量,彻底关闭编辑器再打开就解决了。你按顺序试这些步骤,应该能解决Vite检测旧Node版本的问题。另外补充一句:crypto.hash is not a function这个报错就是因为Node18的crypto模块没有这个方法,Node22.x才支持,所以只要Vite真的用上Node22,这个报错就会消失。

火山引擎 最新活动