vue2/vue3的老项目突然运行不了,报如下错误
zhb@bindeMacBook-Pro car_mgr_web % npm run serve
> car_mgr_web@0.1.0 serve
> vue-cli-service serve
INFO Starting development server...
10% building 2/5 modules 3 active .../node_modules/webpack/hot/dev-server.jsError: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:68:19)
at Object.createHash (node:crypto:138:10)
at module.exports (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/util/createHash.js:90:53)
at NormalModule._initBuildHash (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:401:16)
at handleParseError (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:449:10)
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:481:5
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:342:12
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:236:3
at runSyncOrAsync (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
at iterateNormalLoaders (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
at Array.<anonymous> (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
at Storage.finished (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:43:16)
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:79:9
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:68:19)
at Object.createHash (node:crypto:138:10)
at module.exports (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/util/createHash.js:90:53)
at NormalModule._initBuildHash (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:401:16)
at handleParseError (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:449:10)
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:481:5
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/webpack/lib/NormalModule.js:342:12
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at Array.<anonymous> (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
at Storage.finished (/Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:43:16)
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:79:9
at /Users/binzhu/dev/vue2_pro/car_mgr_web/node_modules/graceful-fs/graceful-fs.js:90:16
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read/context:68:3)
报错是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制
解决方法:
终端先执行如下命令,再运行
Linux & Mac OS:
export NODE_OPTIONS=--openssl-legacy-provider
npm run serve
Windows:
set NODE_OPTIONS=--openssl-legacy-provider
npm run serve
react项目没有这个问题、Vite构建的Vue工程也没有遇到这个问题,只有webpack构建的vue2/vue3老项目普遍出现这个问题。
网友评论