记录一次Node升级之后,引发老项目无法启动的问题。ERR_OSSL_EVP_UNSUPPORTED
问题记录
今天把一个以前的古早项目拖出来,准备跑起来改一改。
# 安装npm包
yarn i - D
# 运行
yarn run serve
一番操作下来,如行云流水。结果报错了:
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
只好求助万能的百度(谷歌),关键词“ERR_OSSL_EVP_UNSUPPORTED”,最终得到如下结论:
If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application with Node.js 17, it’s likely that your application or a module you’re using is attempting to use an algorithm or key size which is no longer allowed by default with OpenSSL 3.0. A new command-line option, --openssl-legacy-provider, has been added to revert to the legacy provider as a temporary workaround for these tightened restrictions.
添加node运行选项 --openssl-legacy-provider,可以解决这个报错的问题。
Node更新日志
https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382
问题解决
问题的原因和解决方法都有了,剩下的就是实际操作了。
打开node_modules/.bin,找到构建工具的启动命令,在node的后面加上启动参数,然后保存。
node --openssl-legacy-provider "$basedir/../@vue/cli-service/bin/vue-cli-service.js" "$@"
也可以选择修改环境变量来设置node的option:
NODE_OPTIONS="--openssl-legacy-provider"
yarn run serve,正常运行,大功告成!
相关文章
- 几个小设置让 Mac 更好用,你学会了吗?
- 烦人横幅不再,Firefox 火狐浏览器测试自动拒绝网站 Cookie 申请
- 虽迟但到!GNOME 的文件选取器在18年后增加了缩略图视图
- 如何在 Ubuntu 中录制流媒体音频
- Flink 在讯飞 AI 营销业务的实时数据分析实践
- 一个简洁、强大、可扩展的前端项目架构是什么样的?
- 数据供应链的转型 协调一致走向成功的三大有效策略
- 常见的 Monorepo 框架大比较
- Windows 11 学院:如何修复 Windows Update 服务丢失问题
- 如何在 Linux 中使用 SCP 安全地传输文件
- Harmony3.0如何实现NFC碰一碰配置
- Windows 11 学院:如何修复 Windows Update 的 0x80190001 错误
- 规模化敏捷框架(SAFe)的完整指南
- 如何在 Shell 脚本中使用 Break 和 Continue 语句
- 2023 年值得期待的五款优秀 Linux 手机
- 微软加速分离 explorer.exe 进程:现已着手分离“Impressive Shell”
- Istio 1.16对环境网格和用户意味着什么?
- 说说Buddy算法的那些事
- 一站式集成Cocos&OpenHarmony/HarmonyOS开发环境
- 实现高效BI分析的必备技术OLAP,一篇讲明白