Vaadin Spring Boot应用程序中的Node.js错误

问题描述

尝试在Intellij IDEA中运行Creating CRUD UI with Vaadin project包含以下build.gradle

plugins {
    id 'org.springframework.boot' version '2.3.2.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url "https://maven.vaadin.com/vaadin-addons" }
}

dependencyManagement {
    imports {
        mavenBom 'com.vaadin:vaadin-bom:14.3.9'
    }
}

dependencies {
    implementation 'com.vaadin:vaadin-spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'com.h2database:h2'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage',module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

运行项目时出现节点问题:

2020-10-07 19:01:42.637  INFO 8364 --- [           main] NodeInstaller                            : Installing node version v12.18.3
2020-10-07 19:01:42.637  INFO 8364 --- [           main] NodeInstaller                            : Downloading https://nodejs.org/dist/v12.18.3/node-v12.18.3-win-x64.zip to C:\Users\g\.vaadin\node-v12.18.3-win-x64.zip
2020-10-07 19:01:42.638  INFO 8364 --- [           main] ProxyConfig                              : No proxies configured
2020-10-07 19:01:42.638  INFO 8364 --- [           main] FileDownloader                           : No proxy was configured,downloading directly
2020-10-07 19:01:52.244  INFO 8364 --- [           main] NodeInstaller                            : Unpacking C:\Users\g\.vaadin\node-v12.18.3-win-x64.zip into C:\Users\g\.vaadin\node\tmp
2020-10-07 19:01:54.523  INFO 8364 --- [           main] NodeInstaller                            : copying node binary from C:\Users\g\.vaadin\node\tmp\node-v12.18.3-win-x64\node.exe to C:\Users\g\.vaadin\node\node.exe
2020-10-07 19:01:54.524  INFO 8364 --- [           main] NodeInstaller                            : Extracting NPM
2020-10-07 19:02:21.733  INFO 8364 --- [           main] NodeInstaller                            : Local node installation successful.
C:\Users\g\.vaadin\node\node.exe: bad option: --no-update-notifier
C:\Users\g\.vaadin\node\node.exe: bad option: --no-audit
C:\Users\g\.vaadin\node\node.exe: bad option: --scripts-prepend-node-path=true
2020-10-07 19:02:22.336 ERROR 8364 --- [           main] dev-updater                              : Command `C:\Users\g\.vaadin\node\node.exe --no-update-notifier --no-audit --scripts-prepend-node-path=true install` Failed:

2020-10-07 19:02:22.336 ERROR 8364 --- [           main] dev-updater                              : >>> Dependency ERROR. Check that all required dependencies are deployed in npm repositories.
2020-10-07 19:02:22.340 ERROR 8364 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Exception sending context initialized event to listener instance of class [com.vaadin.flow.spring.VaadinServletContextinitializer$DevModeservletcontextlistener]

java.lang.RuntimeException: Unable to initialize Vaadin DevModeHandler

如何解决这个问题?

解决方法

vaadin 自带的 Node.js 版本有问题。安装最新版本的 Node.js。到其安装目录复制node_modules文件夹和node.exe,替换C:\Users~.vaadin\node.