diff --git a/flow-build-tools/src/main/java/com/vaadin/flow/server/frontend/scanner/FrontendClassVisitor.java b/flow-build-tools/src/main/java/com/vaadin/flow/server/frontend/scanner/FrontendClassVisitor.java index f1675e779b1..e732fb7cf97 100644 --- a/flow-build-tools/src/main/java/com/vaadin/flow/server/frontend/scanner/FrontendClassVisitor.java +++ b/flow-build-tools/src/main/java/com/vaadin/flow/server/frontend/scanner/FrontendClassVisitor.java @@ -69,6 +69,7 @@ private static final class JSAnnotationVisitor boolean currentDevOnly = false; private String currentModule; + private boolean currentTypeIsModule = false; private LinkedHashSet target; private LinkedHashSet targetDevelopmentOnly; @@ -91,10 +92,22 @@ public void visit(String name, Object value) { } } + @Override + public void visitEnum(String name, String descriptor, String value) { + // The "type" attribute only exists on @JavaScript; @JsModule has + // no such attribute, so this method is a no-op for it. + if ("type".equals(name) && "MODULE".equals(value)) { + currentTypeIsModule = true; + } + } + @Override public void visitEnd() { super.visitEnd(); - if (currentModule != null) { + // type=MODULE values are loaded at runtime as