错误信息 vvv
static/js/runtime.b14ae2b5.js from Terser
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at 项目路径\node_modules\terser-webpack-plugin\dist\index.js:217:37
at Array.forEach (<anonymous>)
at TerserPlugin.optimizeFn (项目路径\node_modules\terser-webpack-plugin\dist\index.js:160:259)
at AsyncSeriesHook.eval [as callAsync] (eval at create (项目路径\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:7:1)
at AsyncSeriesHook.lazyCompileHook (项目路径\node_modules\tapable\lib\Hook.js:154:20)
at 项目路径\node_modules\webpack\lib\Compilation.js:1409:36
at AsyncSeriesHook.eval [as callAsync] (eval at create (项目路径\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
at AsyncSeriesHook.lazyCompileHook (项目路径\node_modules\tapable\lib\Hook.js:154:20)
at 项目路径\node_modules\webpack\lib\Compilation.js:1405:32
at AsyncSeriesHook.eval [as callAsync] (eval at create (项目路径\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
at AsyncSeriesHook.lazyCompileHook (项目路径\node_modules\tapable\lib\Hook.js:154:20)
at Compilation.seal (项目路径\node_modules\webpack\lib\Compilation.js:1342:27)
at 项目路径\node_modules\webpack\lib\Compiler.js:675:18
at 项目路径\node_modules\webpack\lib\Compilation.js:1261:4
at AsyncSeriesHook.eval [as callAsync] (eval at create (项目路径\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:24:1)
at AsyncSeriesHook.lazyCompileHook (项目路径\node_modules\tapable\lib\Hook.js:154:20)
at Compilation.finish (项目路径\node_modules\webpack\lib\Compilation.js:1253:28)
at 项目路径\node_modules\webpack\lib\Compiler.js:672:17
at _done (eval at create (项目路径\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:9:1)
at eval (eval at create (项目路径\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:48:22)
at 项目路径\node_modules\webpack\lib\Compilation.js:1185:12
at 项目路径\node_modules\webpack\lib\Compilation.js:1097:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
该问题产生的原因是,在Node17中,nodejs依赖的openssl库对hash做了些更严格的约束,导致了兼容性问题
解决方式
https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported
https://stackoverflow.com/questions/73144960/error-error0308010cdigital-envelope-routinesunsupported-at-new-hash-nodei
主要是在启动脚本中增加 --openssl-legacy-provider