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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐