Minifier-plugin 25.11
De webforJ Minifier Plugin minimaliseert automatisch minifies en optimaliseert CSS- en JavaScript-assets tijdens het bouwproces. De plugin ontdekt assets die worden verwezen via webforJ asset-annotaties en minimaliseert ze in de bouwuitvoer, waardoor bestandsformaten worden verkleind en laadtijden worden verbeterd zonder uw oorspronkelijke bronbestanden te wijzigen.
De frontend-bundler minimaliseert CSS en JavaScript als onderdeel van de productie-build, zodat een project dat de bundler gebruikt deze plugin niet nodig heeft. De plugin blijft beschikbaar en ondersteund voor projecten die assets laden via de asset-annotaties zonder de bundler. Bestaande setups blijven werken zoals voorheen, zonder dat er wijzigingen nodig zijn.
Configuratie
Als u uw project hebt gemaakt met startforJ of een webforJ archetype, is de minifier-plugin al geconfigureerd en draait deze automatisch wanneer u bouwt met het prod profiel met mvn package -Pprod.
Voor handmatige configuratie vereist de minifier twee configuraties: een annotatieprocessor om assets tijdens de compilatie te ontdekken, en een plugin om de minificatie uit te voeren.
- Maven
- Gradle
Voeg het volgende toe aan uw pom.xml:
<build>
<plugins>
<!-- Configuratie van de annotatieprocessor -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.webforj</groupId>
<artifactId>webforj-minify-foundation</artifactId>
<version>${webforj.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<!-- Configuratie van de minifier-plugin -->
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-minify-maven-plugin</artifactId>
<version>${webforj.version}</version>
<executions>
<execution>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
<dependencies>
<!-- CSS-minificatie -->
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-minify-phcss-css</artifactId>
<version>${webforj.version}</version>
</dependency>
<!-- JavaScript-minificatie -->
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-minify-closure-js</artifactId>
<version>${webforj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Voeg het volgende toe aan uw build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.webforj:webforj-minify-gradle-plugin:${webforjVersion}"
}
}
plugins {
id 'java'
}
apply plugin: 'com.webforj.minify'
dependencies {
// Annotatieprocessor voor het ontdekken van assets tijdens de compilatie
annotationProcessor "com.webforj:webforj-minify-foundation:${webforjVersion}"
// Implementaties van de minifier
add "webforjMinifier", "com.webforj:webforj-minify-phcss-css:${webforjVersion}"
add "webforjMinifier", "com.webforj:webforj-minify-closure-js:${webforjVersion}"
}
De minify taak draait automatisch vóór de jar of war taken. U kunt deze ook handmatig uitvoeren met ./gradlew minify.
De plugin gebruiken
Zodra geconfigureerd, werkt de plugin automatisch. Gebruik eenvoudig webforJ-assetannotaties in uw code:
package com.example;
import com.webforj.annotation.StyleSheet;
import com.webforj.annotation.JavaScript;
@StyleSheet("ws://css/app.css")
@JavaScript("ws://js/app.js")
public class MyApp extends App {
// Uw applicatiecode
}
Wanneer u uw project bouwt, minimaliseert de plugin automatisch:
- Ontdekt assets die in annotaties tijdens de compilatie zijn verwezen
- Minimaliseert de ontdekte CSS- en JavaScript-bestanden
- Rapporteert de grootte-reductie en verwerkingstijd
URL-protocolresolutie
De plugin begrijpt webforJ URL-protocollen en lost ze op naar bestandspaden:
| Protocol | Lost op | Voorbeeld |
|---|---|---|
ws:// | src/main/resources/static/ | ws://css/app.css → static/css/app.css |
context:// | src/main/resources/ | context://styles/app.css → styles/app.css |
URLs zonder een protocol worden niet ondersteund door de minifier en worden overgeslagen.
Ingebouwde minifiers
webforJ bevat twee productieklaar minifiers voor CSS en JavaScript.
| Minifier | Kenmerken | Overgeslagen |
|---|---|---|
| CSS | Verwijdert witruimtes, opmerkingen en optimaliseert eigenschapswaarden | .min.css |
| JavaScript | Hernoemen van variabelen, eliminatie van dode code, syntaxisoptimalisatie | .min.js, .min.mjs |
Configuratie-opties
De plugin biedt opties om minificatie uit te schakelen, JavaScript-optimalisatie aan te passen en aanvullende bestanden te verwerken.