[完美解决]Vue项目运行时出现this[kHandle] = new _Hash(algorithm, xofLen)

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

而不是在后面加。再次运行即可解决。
[完美解决]Vue项目运行时出现this[kHandle] = new _Hash(algorithm, xofLen)_第1张图片

2、方法二(可以解决,但不太推荐)

第二个方法则是改node的版本,从根处解决,不过可能你现在写的代码在之前的node版本不兼容了。大多数运行其他的代码就是为了实现对应的效果,能跑通运行即可,然后把那个代码实现的功能加到自己的项目上即可,所以不太推荐降低node的版本,但这里还是记录一下,既然是node.js V17开始版本中发布的是OpenSSL3.0,那么使用v16版本的就ok了。
在下面网站下载对应的node。
https://nodejs.org/download/release/v16.19.0/
下载下面这个即可。不过得卸载之前的node版本,其实还是稍微有些复杂的。
[完美解决]Vue项目运行时出现this[kHandle] = new _Hash(algorithm, xofLen)_第2张图片
卸载参考这篇博文https://blog.csdn.net/m0_51945510/article/details/127710792

你可能感兴趣的:(vue.js,前端,javascript)