在飞行中 LESS 编译器用于 java Web 应用程序?

2022-09-03 12:44:57

我正在寻找一种方法,在开发过程中按需在服务器端编译CSS LESS文件。例如,如果浏览器向 /assets/css/foo 发出请求.css我希望服务器注意到有一个 /assets/css/foo.less 文件,然后编译此文件并返回生成的 css。我猜一定有一个LESS servlet可以在某个地方做到这一点吗?

我正在运行带有春季MVC应用程序的tomcat 7

如何配置 Java Web App 以动态进行 LESS 编译?


答案 1

我认为你正在寻找的是Servlet过滤器。我不知道一个现成的做LESS编译的项目,并且已经开始使用lesscss-java制作一个,但现在我可以看到有一个更大的项目,称为Java的Web Resource Optimizer - wro4j,具有服务器端LESS支持


答案 2

在构建 Web 应用期间,首先将较少的文件编译为 css 文件会更简单(也更有效)。
例如,当使用Maven时,我们使用lesscss-maven-plugin编译目标,进程源阶段)从更少的文件生成css文件。然后,在 web 应用中仅使用和打包 css 文件。动态使用不少于文件。
另一个优点是在部署 Web 应用之前编译的文件更少,因此可以更快地检测到编译错误。

pom 中的配置示例.xml:

<plugin>
    <groupId>org.lesscss</groupId>
    <artifactId>lesscss-maven-plugin</artifactId>
    <version>1.3.0</version>
    <configuration>
        <sourceDirectory>${project.basedir}/src/main/webapp/less</sourceDirectory>
        <outputDirectory>${project.build.directory}/${project.build.finalName}/css</outputDirectory>
        <compress>true</compress>
        <includes>
            <include>main.less</include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

推荐