TypeError: crypto$2.getRandomValues is not a function

这个错误和 Node.js 版本有关,咱们来分析下原因并提供解决方案:


❗ 报错信息解析:

TypeError: crypto$2.getRandomValues is not a function

这个错误说明:crypto.getRandomValues 函数不是一个函数,也就是 不存在或未定义。而这个函数是 Vite 在启动时用来生成随机 ID 的一部分。


🎯 问题本质:

crypto.getRandomValues()Web Crypto API 中的函数。在 Node.js 中,要使用这个 API 必须是 Node.js 19+ 才原生支持。


🔍 可能的原因:

你当前用的 Node.js 版本太旧,不支持 Vite 使用的 crypto.getRandomValues()


✅ 解决方案:

✅ 方法一:升级 Node.js 到 20(推荐)

执行以下操作查看版本:

node -v

建议你升级到 Node.js 20.x LTS 版本。

👉 下载链接:https://nodejs.org/zh-cn

升级后重新安装依赖:

rm -rf node_modules
npm install
npm run dev

🔁 其他建议:

  • Node.js 升级后也记得升级 npm
npm install -g npm
  • 如果你用的是 nvm(Node.js 版本管理器),可以方便切换版本:
nvm install 20
nvm use 20

NVM版本管理器见我前面写的文章:NVM管理

🧠 学习点(英语角时间):

词汇含义
getRandomValues获取随机值的函数,属于 Web Crypto API
TypeError类型错误,通常是对象不具备调用方法的能力
not a function不是一个函数,意味着你尝试调用一个不存在或未定义的函数
at async ...表示报错发生在一个异步函数内部

截至 2025 年 6 月,目前 Node.js 的稳定版本(LTS 和当前版本)如下:

✅ 当前最新稳定版本:

版本类型发布时间说明
v20.xLTS(长期支持)2023年10月起推荐用于生产环境
v21.xCurrent(当前版)2023年10月起新功能多,适合尝鲜测试
v22.xCurrent(最新开发版)2024年4月功能最全,但还不是 LTS

💡 推荐选择:

  • 生产环境开发:使用 Node.js v20.x LTS

    • 兼容性强,Vite 等现代前端工具支持良好。
    • 官方维护时间到 2026年4月,适合长期项目。
  • 新特性体验/学习:可以试用 v22.x


🔍 安装建议:

# 安装 nvm(Node 版本管理器)
# Windows 可用 nvm-windows:https://github.com/coreybutler/nvm-windows
# macOS/Linux:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# 安装并使用 v20 LTS
nvm install 20
nvm use 20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书语时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值