问题
在新建的项目中,使用的是 npm init vue
创建项目后,执行命令 npm i
,然后去 npm run dev
这个时候报错 TypeError: crypto$2.getRandomValues is not a function
起初是以为搞错了,然后再删掉 node_modules 和 package-lock 重新执行 npm i 但结果还是一样的,
所以我尝试升级 node 版本为 20.16.0,就好了,我原版的 node 版本为16.18.0,因为我们流水线上的node 版本是 16 版本,为了兼容流水线上的版本,我本地也采用的是 16 的版本,所以出现了这个问题,但这个真正的问题是 vite 的错误,他的最新版本是6.0.0,但是 crypto$2 在低版本node中是不兼容的,所以有两种解决方案,升级 node 版本和降级 vite 版本
解决方案:
- 升级 node 版本兼容 将 node 升级为18 版本以上,
- 将 vite 版本改为 5 版本以内,我改的是 5.4.11,并且锁定版本为 5.4.11,防止在流水线中不兼容
参考文章
https://blog.csdn.net/weixin_45061714/article/details/145512637