node.js v18.16.1安装教程

文章讲述了在遇到Node.js版本18.x导致的加密错误ERR_OSSL_EVP_UNSUPPORTED时的解决方法。错误源于OpenSSL3.0的严格限制。解决方案包括回退到v17以下版本或在package.json中添加命令行参数--openssl-legacy-provider来临时解决。此外,也提到了通过设置环境变量的方式运行项目。
摘要由CSDN通过智能技术生成

1、

https://nodejs.org

官网点击对应的版本下载,解压后点击安装程序,一直点next,可以改变成自己的路径

2、

环境变量配置

 系统环境变量

系统变量中path

3、管理员身份打开cmd窗口

4、安装镜像文件

npm config set prefix "D:\Program Files\node.js\node_global"
npm config set prefix "D:\Program Files\node.js\node_cahce"
npm config set registry https://register.npm.taobao.org
npm comfig ls

项目启动node.js版本问题解决办法:

错误代码复现

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\webpack\lib\util\createHash.js:135:53)
    at NormalModule._initBuildHash (E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\webpack\lib\NormalModule.js:412:16)
    at handleParseError (E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\webpack\lib\NormalModule.js:463:10)
    at E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\webpack\lib\NormalModule.js:495:5
    at E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\webpack\lib\NormalModule.js:354:12
    at E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
    at Array.<anonymous> (E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
    at Storage.finished (E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:43:16)
    at E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:79:9
    at E:\Tian\project_api\Yolov5-Flask-VUE-master\Yolov5-Flask-VUE-master\front-end\node_modules\graceful-fs\graceful-fs.js:115:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.16.1

解决办法:

1、重装node版本到v17以下(因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。)

2、推荐:修改package.json,在相关构建命令之前加入

SET NODE_OPTIONS=--openssl-legacy-provider
npm run serve
"scripts": {
   "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
   "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
},

打开cmd, cd到项目指定目录

SET NODE_OPTIONS=--openssl-legacy-provider

npm run serve

每次运行都要输入SET NODE_OPTIONS=--openssl-legacy-provider,来告诉nodejs,别使用最新的SSL3.0,还是使用以前旧版本的。

ok, 启动成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值