vue项目运行bug解决办法
- 一、问题内容
- 二、问题出现的原因
- 三、解决方法
- 1、方法一(推荐)
- 2、方法二(可以解决,但不太推荐)
一、问题内容
在github寻找一些vue项目clone到本地时候,npm i没有问题,但是npm run serve 或者npm run dev的时候会出现报错:
this[kHandle] = new _Hash(algorithm, xofLen)
在csdn上找了一些解决办法,有的有效有的无效,这里汇总一下,以免走弯路。
二、问题出现的原因
出现这个问题是node.js 的版本问题,因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。而github项目很多都是之前版本的npm,所以运行时候会出现这个问题。
三、解决方法
1、方法一(推荐)
打开package.json文件夹,在serve或者dev处前面加上
set NODE_OPTIONS=--openssl-legacy-provider
一定要在前面,也就是要写成:
set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve
而不是在后面加。再次运行即可解决。
2、方法二(可以解决,但不太推荐)
第二个方法则是改node的版本,从根处解决,不过可能你现在写的代码在之前的node版本不兼容了。大多数运行其他的代码就是为了实现对应的效果,能跑通运行即可,然后把那个代码实现的功能加到自己的项目上即可,所以不太推荐降低node的版本,但这里还是记录一下,既然是node.js V17开始版本中发布的是OpenSSL3.0,那么使用v16版本的就ok了。
在下面网站下载对应的node。
https://nodejs.org/download/release/v16.19.0/
下载下面这个即可。不过得卸载之前的node版本,其实还是稍微有些复杂的。
卸载参考这篇博文https://blog.csdn.net/m0_51945510/article/details/127710792