Vaadin 14执行mvn vaadin:build-frontend时webpack构建失败求助
解决Vaadin构建时的ERR_OSSL_EVP_UNSUPPORTED错误
这个错误是因为你使用的Node.js v20.9.0属于17及以上版本,默认启用了更严格的OpenSSL加密配置,而项目依赖的旧版Webpack不支持新的哈希算法,导致构建失败。下面是几种可行的解决办法:
临时快速解决(单次生效)
根据你使用的终端类型,在执行构建命令前添加环境变量:
- Windows 命令提示符:
set NODE_OPTIONS=--openssl-legacy-provider && mvn vaadin:build-frontend - Windows PowerShell:
$env:NODE_OPTIONS="--openssl-legacy-provider"; mvn vaadin:build-frontend
永久配置(Maven插件层面)
修改项目根目录下的pom.xml,在Vaadin Maven插件配置中添加nodeOptions参数,让每次构建自动带上兼容参数:
<plugin> <groupId>com.vaadin</groupId> <artifactId>vaadin-maven-plugin</artifactId> <version>${vaadin.version}</version> <executions> <execution> <goals> <goal>prepare-frontend</goal> <goal>build-frontend</goal> </goals> </execution> </executions> <configuration> <!-- 添加这一行 --> <nodeOptions>--openssl-legacy-provider</nodeOptions> </configuration> </plugin>
彻底解决(升级依赖)
如果项目允许,升级Webpack到5.60.0及以上版本,这些版本已经适配了Node.js 17+的OpenSSL规则。注意要确认Vaadin版本与升级后的Webpack版本兼容,避免引入新问题。
内容的提问来源于stack exchange,提问作者Stimpson Cat
相关产品推荐
相关产品推荐

