一开始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"
  },

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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐