Thingsboard 编译时 Web UI 报错:digital envelope routines::unsupported,node版本v18.12.1,在网上查询了解决方法,记录下
1、原因:
node.js 的版本问题
因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错
2、解决方法有两个
2.1 方法一
修改package.json,在相关构建命令之前加入set NODE_OPTIONS=–openssl-legacy-provider
"scripts": {
"serve": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
"build": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build",
"build:report": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build --report",
2.2 方法二
Windows下增加 系统环境变量 NODE_OPTIONS=--openssl-legacy-provider,重新打开IDEA。
如果是 Linux 或者 WSL 环境,请加入(没有测试,请自行测试)
export NODE_OPTIONS=--openssl-legacy-provider