企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

vue报错信息-【crypto$2.getRandomValues is not a function】

wudianyun 2025-04-05 23:38:11 精选文章 87 ℃

错误信息如下:

PS D:\coding\java\javascript\vue\test1\vue-base> npm run dev

> vue-base@0.0.0 dev
> vite

error when starting dev server:
TypeError: crypto$2.getRandomValues is not a function
    at resolveConfig (file:///D:/coding/java/javascript/vue/test1/vue-base/node_modules/vite/dist/node/chunks/dep-DDxXL6bt.js:54261:16)
    at async _createServer (file:///D:/coding/java/javascript/vue/test1/vue-base/node_modules/vite/dist/node/chunks/dep-DDxXL6bt.js:43855:18)
    at async CAC. (file:///D:/coding/java/javascript/vue/test1/vue-base/node_modules/vite/dist/node/cli.js:750:20)
PS D:\coding\java\javascript\vue\test1\vue-base> node -v
v16.20.2
PS D:\coding\java\javascript\vue\test1\vue-base>

分析后,原因如下:

由于 Vite 使用了 Web Crypto API 中的方法 getRandomValues(),
而这些方法在较旧版本的 Node.js 中可能未被完全支持或实现方式不同所致

解决方法:

  • 如果无法升级 Node.js 版本,可以尝试将 Vite 版本降级到 5.x 版本。例如,将 Vite 版本改为 5.4.11,并锁定版本以防止在流水线中不兼容。
  • 修改项目中的 package.json 文件,将 Vite 版本指定为 5.4.11:

操作如下:

"devDependencies": {
  "vite": "5.4.11"
}

再次npm install,正常了。

最近发表
标签列表