跳至主要内容

Build and tests

在 ChatGPT 中打开

打包工具作为 webforJ 构建插件 的目标运行。只需如上所示添加插件一次,正常的 mvn packagegradle build 就会生成一个包含前端编译的应用程序,而 mvn test 则会与 Java 测试一起运行前端测试。本文涵盖了打包工具在这些步骤中所做的事情。

开发监视

watch 步骤是您在开发期间手动运行的步骤,伴随着应用程序一起运行。它编译前端一次,然后在每次更改时重新构建并刷新浏览器。

mvn compile webforj:watch spring-boot:run

webforJ 项目将此设置为其默认目标,因此不带任何参数的 mvn 会同时启动监视和应用程序。它驱动的重新加载行为,即在脚本更改重新加载视图时在位置上应用样式表更改,已在 前端监视 中涵盖。

前端测试

test 步骤在测试阶段对 src/main/frontend 运行 Bun 测试运行器,因此 mvn test 会与 Java 测试一起运行前端测试。当源根没有测试文件时,此步骤会被跳过,失败的前端测试会导致构建失败,因此,前端出现故障会像 Java 测试故障一样停止发布。有关编写这些测试的信息,请参见 前端测试

调整编译器

编译器从 src/main/frontend/bun.config.ts 中读取其设置,按扩展 ID 进行键入,因此设置会在构建时到达正确的编译器。有关给 SCSS 编译器提供加载路径的示例,请参见 SCSS 和 Sass

生产打包

bundle 步骤在 prepare-package 期间运行,因此打包应用程序会为生产编译其前端。生产构建与开发构建在两个重要方面不同,这些在应用程序部署后会显现出来。

  • 哈希文件名。 每个输出文件的名称中都带有其内容的哈希值。因此,浏览器可以长时间缓存文件,因为内容的更改会生成新的名称,而新名称会强制进行新的获取。缓存保持安全,无需手动版本提升。
  • 压缩输出。 空格和死代码被剥离,因此浏览器下载的文件大小尽可能小。

开发构建跳过这两项。它保持稳定的名称和可读的输出,以便监视可以直接替换一个文件,您可以在调试时查看加载的内容。

因为压缩是此步骤的一部分,使用打包工具的项目不需要其他任何东西即可发送压缩的 CSS 和 JavaScript。对于通过 资源注解 加载资源的应用,而不使用打包工具, 压缩插件 则负责该生产压缩。

渴望打包

默认情况下,每个视图仅加载它使用的前端,当创建该类的组件时,因此视图不支付它不呈现的内容。

渴望模式在应用启动时将整个前端作为单个包加载,而不是按视图加载。使用 eager 选项开启它:

pom.xml
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<eager>true</eager>
</configuration>
</plugin>

默认情况下,渴望是关闭的,每视图模型适合大多数应用程序。当您希望从一开始就将整个前端放在位上,而不是在视图呈现时加载时,请使用它。