巨大的石头

在这里寻找精彩人生

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

Error: error:0308010C:digital envelope routines::unsupported

概述

使用若依框架,启动UI执行命令npm run dev时报错误:Error: error:0308010C:digital envelope routines::unsupported

1
2
3
4
5
6
7
8
9
10
11
INFO  Starting development server...
95% emitting CompressionPlugin ERROR  Error: error:0308010C:digital envelope routines::unsupported
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at D:\Project\RuoYi\ruoyi-ui\node_modules\compression-webpack-plugin\dist\index.js:243:42
    at CompressionPlugin.compress (D:\Project\RuoYi\ruoyi-ui\node_modules\compression-webpack-plugin\dist\index.js:284:9)
    at D:\Project\RuoYi\ruoyi-ui\node_modules\compression-webpack-plugin\dist\index.js:305:12
    at _next1 (eval at create (D:\Project\RuoYi\ruoyi-ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:14:17)
    at eval (eval at create (D:\Project\RuoYi\ruoyi-ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:33:1)
    at D:\Project\RuoYi\ruoyi-ui\node_modules\copy-webpack-plugin\dist\index.js:91:9

分析

因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。 我的node版本是v18.12.0

解决方案

解决方式(仅限 windows):

在项目中 package.json 的 scripts 中新增 SET NODE_OPTIONS=--openssl-legacy-provider

添加前:

1
2
3
4
5
6
7
"scripts": {
  "dev": "vue-cli-service serve",
  "build:prod": "vue-cli-service build",
  "build:stage": "vue-cli-service build --mode staging",
  "preview": "node build/index.js --preview",
  "lint": "eslint --ext .js,.vue src"
},

  

添加后:

1
2
3
4
5
6
7
"scripts": {
   "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
   "build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
   "build:stage": "vue-cli-service build --mode staging",
   "preview": "node build/index.js --preview",
   "lint": "eslint --ext .js,.vue src"
 },

  

运行成功

posted on   巨大的石头  阅读(481)  评论(1编辑  收藏  举报

打赏

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示