Vaadin Spring Boot 找不到 npm 包



我有一个现有的Spring Boot应用程序,我希望添加一个Vaadin前端。

我有一个简单的视图类,如下所示:

@Route(value = "admin")
public class MainView extends VerticalLayout {
private TextField field = new TextField("Message");
private Button button = new Button("Click Me");
@PostConstruct
public void init() {
button.addClickListener(e -> Notification.show("Message: " + field.getValue()));
}
}

我已通过将.anyRequsts().permitAll()添加到我的SecurityConfig来禁用 Spring 安全性

当我运行该应用程序并在 Chrome 中导航到/admin时,我收到以下错误,显示页面的预期位置。

Webpack Error
ERROR in ../target/frontend/generated-flow-imports.js
Module not found: Error: Can't resolve '@vaadin/vaadin-button/src/vaadin-button.js' in 'C:UserscameronIdeaProjectsbiometric-accesstargetfrontend'
@ ../target/frontend/generated-flow-imports.js 11:0-52

对于各种包,重复此操作几次。我在 Spring 控制台输出中也遇到了类似的错误。它还给出了一条消息,告诉我删除node_modules,然后运行npm install,我已经尝试过了。

Vaadin 文档没有提到这个问题,建议的步骤不起作用。

令人气愤的是,它以前正常工作,我不知道是什么变化使它停止工作。任何建议将不胜感激。

编辑

经过一番搜索,我意识到这可能是一个 npm 问题,而不是一个 vaadin 问题。npm "常见问题"页面建议运行npm clean后跟npm install来解决此错误。这解决了我的问题。

从 Vaadin 14.0.0 更新到 14.0.2 后我遇到了同样的问题。 删除node_modules文件夹并运行prepare-frontend目标是不够的。

在打包项目之前删除以下文件和文件夹:

  • node_modules
  • package-lock.json
  • 包.json
  • webpack.config.js
  • webpack.generated .js

在pom 中更新 vaadin 版本后,有一个"干净"的目标来自动执行此操作会很好.xml

最新更新