解决npmr run start运行项目时的报错Error: error:0308010C:digital envelope routines::unsupported

一开始umi-plugin-react一直安装不上,各种卸载package-lock.json删除啊,重装都不行,最后把node版本从16.18升级到18.10才安装好了
结果一运行就报错

PS C:\Users\Asus\Desktop\biad\v3-react-helloworld> npm run start

> start
> umi dev

 build [==                  ] 10%Starting the development server...

node:internal/crypto/hash:71
 this[kHandle] = new _Hash(algorithm, xofLen);
                 ^

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 (C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\webpack\lib\util\createHash.js:135:53)
   at NormalModule._initBuildHash (C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\webpack\lib\NormalModule.js:417:16)
   at handleParseError (C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\webpack\lib\NormalModule.js:471:10)
   at C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\webpack\lib\NormalModule.js:503:5
   at C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\webpack\lib\NormalModule.js:358:12
   at C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\loader-runner\lib\LoaderRunner.js:373:3
   at iterateNormalLoaders (C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
   at Array.<anonymous> (C:\Users\Asus\Desktop\biad\v3-react-helloworld\node_modules\loader-runner\lib\LoaderRunner.js:205:4) {
 opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
 library: 'digital envelope routines',
 reason: 'unsupported',
 code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

网上说是 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,所以会报错。
试了网上的几种方法都不行

PS C:\Users\Asus\Desktop\biad\v3-react-helloworld> export NODE_OPTIONS=--openssl-legacy-provider
export : 无法将“export”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ export NODE_OPTIONS=--openssl-legacy-provider
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (export:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

执行set NODE_OPTIONS=--openssl-legacy-provider也还是报错
最后把这句代码加到package.json里的运行命令里就好用了

  "scripts": {
    "start": "SET NODE_OPTIONS=--openssl-legacy-provider && umi dev",
    "build": "SET NODE_OPTIONS=--openssl-legacy-provider && umi build",
    "test": "umi test",
    "lint": "eslint {src,mock,tests}/**/*.{js,jsx} --fix",
    "precommit": "lint-staged"
  },

艾玛浪费我半天时间……
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值