Node 升级后的坑

2023-04-27  本文已影响0人  alue

更换笔记本后,重新安装了开发环境,node 从16升级到了18,结果遇到了两个坑。

第一个坑

在运行 npm 指令 quasar dev 时,报出以下错误。

[  Error: error:0308010C:digital envelope routines::unsupported ]
{
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

这个提示还是比较全面,一下就定位到兼容性问题。利用搜索引擎查到了解决办法如下:

在 windows 命令行先输入以下指令即可。

 $env:NODE_OPTIONS="--openssl-legacy-provider"

指令的含义一眼也能猜出来,legacy 是计算机领域很常见的词汇,大概意思就是“旧版本”,也就是说,目前业界有更好的解决方案,但为了兼容性,还是保留了 legacy 版。

第二个坑

前后端分离项目中, 前端向后端发送请求,接口代理被屏蔽了,报出了下述错误。

[HPM] Error occurred while trying to proxy request /api/ from localhost:8080 to http://localhost:8000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

解决办法也很离奇,尝试将后端代理地址,由localhost修改为127.0.0.1之后,接口就通了,原因不是很明白。感觉像是node升级了之后,安全性措施有所变动导致。

上一篇 下一篇

猜你喜欢

热点阅读