Vaadin 24生产构建时前端文件被删除,如何留存适配流水线?
Vaadin 24生产构建后保留前端文件的解决方案
在执行mvn clean package -Pproduction时,Vaadin 24默认会在build-frontend阶段清理生成的package.json、package-lock.json、vite.generated.ts和node_modules,以下是两种可靠的留存方法:
方法1:修改Maven插件配置禁用自动清理
直接在项目的pom.xml中调整vaadin-maven-plugin的配置,阻止插件删除前端文件和依赖目录:
<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> <configuration> <!-- 禁止清理node_modules目录 --> <cleanNode>false</cleanNode> <!-- 禁止清理生成的前端配置文件 --> <cleanFrontendFiles>false</cleanFrontendFiles> </configuration> </execution> </executions> </plugin>
如果不想修改pom,也可以在命令行临时添加参数:
mvn clean package -Pproduction -Dvaadin.cleanNode=false -Dvaadin.cleanFrontendFiles=false
方法2:预先创建空的package.json
手动在项目根目录创建一个内容为{}的空package.json文件,Vaadin的prepare-frontend目标会自动更新这个文件,并且不会在构建后删除它——因为插件会识别这是用户手动创建的文件,而非临时生成的产物。
原因说明
Vaadin生产构建的build-frontend目标默认会清理所有临时生成的前端资源,包括自动生成的package.json。而prepare-frontend虽然负责生成/更新这些文件,但后续的清理步骤会将其删除。通过上述两种方式,要么直接禁用清理逻辑,要么让插件将文件识别为用户自有资源,从而保留下来。
内容的提问来源于stack exchange,提问作者homerstone
相关产品推荐
相关产品推荐

