TypeError: crypto.hash is not a function

vue3+vite启动报错

【问题描述】

vue3 环境搭建

os: win10

node 版本 20.10.0

1
2
3
4
pnpm create myapp
cd myapp
npm i
npm run dev

启动报错 TypeError: crypto.hash is not a function

【问题分析】

根据vite最新版本的package.json 文件

https://github.com/vitejs/vite/blob/ac528a44c384fefb6f10c3f531df93b5ac39324c/packages/vite/package.json#L57

1
2
3
4
5
...
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
....

vite 目前已经更新到了7版本,其中 crypto.hash 至少要 node 20版本或者22以上版本才能用。所以要么降低(指定)vite 版本创建项目,要么把 node 更新到最新版本。

【解决方案】

  • 创建指定vite版本的项目
1
2
3
4
5
// 运行该命令可以查看 create-vite 的所有可用版本
npm view create-vite versions

// 创建指定 vite 版本的项目
npm create vite@<version> project-name // 如 npm create vite@5.5.0 project-name
  • 更新 node 版本

建议大家用nvm管理nodejs版本

1
2
3
4
5
6
7
8
9
10
nvm list

* 22.12.0(Currently using 64-bit executable)
20.12.2
20.10.0
18.19.0
18.16.0
16.18.1
14.18.1
12.14.0

tips 注意时效性: 20250723

坚持原创技术分享,您的支持将鼓励我继续创作!
0%