flow icon indicating copy to clipboard operation
flow copied to clipboard

PiT 24.4: when migrating a hilla project from `2.5.5` to `24.4.0.rc1` old stuff in `generated` folder fail compilation

Open manolo opened this issue 1 year ago • 1 comments

Description of the bug

When migrating an existing hilla 2.5.5 application (generated in initializr) there are imports in generated ts that cannot be resolved because dependencies was not added to package.json

The error is:

Error: [vite]: Rollup failed to resolve import "@vaadin/hilla-frontend" from "src/main/frontend/generated/connect-client.default.ts".

Expected behavior

dependencies are added by flow

Minimal reproducible example

Unpack attached project and run ./mvnw spring-boot:run

initializer-hilla-maven.zip

The project was generated by downloading from https://start.spring.io and making changes in pom.xml as described below:

curl -s 'https://start.spring.io/starter.zip?type=maven-project&language=java&bootVersion=3.2.6&baseDir=initializer-hilla-maven&groupId=com.vaadin.initializer&artifactId=initializer-hilla-maven&name=initializer-hilla-maven&description=initializer-hilla-maven&packageName=com.vaadin.initializer&packaging=jar&javaVersion=17&dependencies=hilla,devtools' --output initializer-hilla-maven.zip
unzip -q initializer-hilla-maven.zip
cd initializer-hilla-maven
check that project works `./mvnw  spring-boot:run`

Migrate to 24.4.0.rc1 by applying the follow changes and re-run again

@@ -15,12 +15,14 @@
        <description>initializer-hilla-maven</description>
        <properties>
                <java.version>17</java.version>
-               <hilla.version>2.5.5</hilla.version>
+               <vaadin.version>24.4.0.rc1</vaadin.version>
        </properties>
+       <pluginRepositories><pluginRepository><id>v</id><url>https://maven.vaadin.com/vaadin-prereleases</url></pluginRepository></pluginRepositories>
+       <repositories><repository><id>v</id><url>https://maven.vaadin.com/vaadin-prereleases</url></repository></repositories>
        <dependencies>
                <dependency>
-                       <groupId>dev.hilla</groupId>
-                       <artifactId>hilla-react-spring-boot-starter</artifactId>
+                       <groupId>com.vaadin</groupId>
+                       <artifactId>vaadin-spring-boot-starter</artifactId>
                </dependency>

                <dependency>
@@ -38,9 +40,9 @@
        <dependencyManagement>
                <dependencies>
                        <dependency>
-                               <groupId>dev.hilla</groupId>
-                               <artifactId>hilla-bom</artifactId>
-                               <version>${hilla.version}</version>
+                               <groupId>com.vaadin</groupId>
+                               <artifactId>vaadin-bom</artifactId>
+                               <version>${vaadin.version}</version>
                                <type>pom</type>
                                <scope>import</scope>
                        </dependency>
@@ -50,9 +52,10 @@
        <build>
                <plugins>
                        <plugin>
-                               <groupId>dev.hilla</groupId>
-                               <artifactId>hilla-maven-plugin</artifactId>
-                               <version>${hilla.version}</version>
+                               <groupId>com.vaadin</groupId>
+                               <artifactId>vaadin-maven-plugin</artifactId>
+                               <configuration><reactEnable>false</reactEnable></configuration>
+                               <version>${vaadin.version}</version>
                                <executions>
                                        <execution>
                                                <id>frontend</id>
@@ -75,9 +78,10 @@
                        <build>
                                <plugins>
                                        <plugin>
-                                               <groupId>dev.hilla</groupId>
-                                               <artifactId>hilla-maven-plugin</artifactId>
-                                               <version>${hilla.version}</version>
+                                               <groupId>com.vaadin</groupId>
+                                               <artifactId>vaadin-maven-plugin</artifactId>
+                                               <configuration><reactEnable>false</reactEnable></configuration>
+                                               <version>${vaadin.version}</version>
                                                <executions>
                                                        <execution>
                                                                <id>frontend</id>
@@ -86,7 +90,6 @@

Versions

  • Vaadin / Flow version: 24.4.0.rc1

manolo avatar Jun 06 '24 13:06 manolo

So after some investigation, the problem happens when the project is migrated to 24.4.0.rc1 after it has been run at least once in version 2.5.5

The problem seems that in 2.5.5 there is a generated/connect-client.default.ts with the content:

import { ConnectClient as ConnectClient_1 } from "@vaadin/hilla-frontend";
const client_1 = new ConnectClient_1({ prefix: "connect" });
export default client_1;

Whereas in 24.4.0.rc1 the generated/connect-client.default.ts is not created

The workaround is to remove the generated folder or run mvn vaadin:dance

manolo avatar Jun 06 '24 14:06 manolo