更换笔记本后,重新安装了开发环境,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升级了之后,安全性措施有所变动导致。
网友评论