`
Hsiang
  • 浏览: 28879 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

YUICompressor 压缩前端js、css文件

    博客分类:
  • Web
阅读更多

  在项目中,前端的js、css会随着项目周期的增加而变的繁多,浏览器下载效率低且费流量,这时我们可以使用各种压缩工具对其进行压缩

  本文使用的是maven环境,在项目的pom.xml添加:

 

<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xx</groupId>
    <artifactId>xx-xx</artifactId>
    <version>3.0.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>xx-xx</name>

    <properties>
        <!-- 主要依赖库的版本定义 -->       
        <jetty.version>7.6.15.v20140411</jetty.version>

        <java.version>1.6</java.version>
        <!-- Plugin的属性定义 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>       
    </properties>


    <prerequisites>
        <maven>3.0.0</maven>
    </prerequisites>

    <dependencies>
        <!-- 服务依赖 -->   
    </dependencies>

    <build>
        <plugins>
            <!-- compiler插件, 设定JDK版本 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <showWarnings>true</showWarnings>
                </configuration>
            </plugin>
            <!-- war打包插件, 设定war包名称不带版本号 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <warName>${project.artifactId}</warName>
                    <packagingExcludes>*.shtml</packagingExcludes>
                </configuration>
            </plugin>

            <!-- YUI Comoress配置 -->
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>yuicompressor-maven-plugin</artifactId>
                <version>1.3.0</version>
                <executions>
                    <execution>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>compress</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- 读取js,css文件采用UTF-8编码 -->
                    <encoding>UTF-8</encoding>
                    <!-- 不显示js可能的错误 -->
                    <jswarn>false</jswarn>
                    <!-- 若存在已压缩的文件,会先对比源文件是否有改动 有改动便压缩,无改动就不压缩 -->
                    <force>true</force>
                    <!-- 在指定的列号后插入新行 -->
                    <linebreakpos>-1</linebreakpos>
                    <!-- 压缩之前先执行聚合文件操作 -->
                    <preProcessAggregates>true</preProcessAggregates>
                    <!-- 压缩后保存文件后缀 -->
                    <suffix></suffix>
                    <nosuffix>true</nosuffix>
                    <disableOptimizations>false</disableOptimizations>
                    <!-- 源目录,即需压缩的根目录 -->
                    <sourceDirectory>${basedir}/src/main/webapp/static</sourceDirectory>
                    <includes>
                        <include>js/*.js</include>
                        <include>css/*.css</include>
                    </includes>
                    <outputDirectory>${basedir}/target/compress</outputDirectory>

                    <!-- 合并:如果不合并,则可以不配置该项 -->
                    <aggregations>
                        <aggregation>
                            <!-- 合并每一个文件后插入一新行 -->
                            <insertNewLine>true</insertNewLine>
                            <!-- 需合并文件的根文件夹 -->
                            <inputDir>${basedir}/src/main/webapp/mergejscss</inputDir>
                            <!-- 最终合并的输出文件 -->
                            <output>${basedir}/src/main/webapp/mergejscss/js/merge.js
                            </output>
                            <!-- 把以下js文件合并成一个js文件,是按顺序合并的 -->
                            <includes>
                                <include>js/xx.js</include>
                            </includes>
                        </aggregation>
                        <aggregation>
                            <!-- 合并每一个文件后插入一新行 -->
                            <insertNewLine>true</insertNewLine>
                            <!-- 需合并文件的根文件夹 -->
                            <inputDir>${basedir}/src/main/webapp/mergejscss</inputDir>
                            <!-- 最终合并的输出文件 -->
                            <output>${basedir}/src/main/webapp/mergejscss/css/merge.css</output>
                            <!-- 把以下css文件合并成一个css文件,是按顺序合并的 -->
                            <includes>
                                <include>css/xx.css</include>
                            </includes>
                        </aggregation>
                    </aggregations>
                </configuration>
            </plugin>

            <!-- jetty插件 -->
            <plugin> 
                <groupId>org.mortbay.jetty</groupId> 
                <artifactId>jetty-maven-plugin</artifactId> 
                <version>8.0.0.RC0</version> 
                <configuration> 
                    <scanIntervalSeconds>0</scanIntervalSeconds>
                    <webAppConfig>
                        <contextPath>/</contextPath>
                        <!--
                        <descriptor>${project.basedir}/src/test/resources/web-test.xml</descriptor>
                         -->
                    </webAppConfig>
                    <!--
                    <classesDirectory>${project.basedir}/target/classes</classesDirectory>
                    <testClassesDirectory>${project.basedir}/target/test-classes</testClassesDirectory>
                    <useTestClasspath>true</useTestClasspath>
                    -->
                    <webAppSourceDirectory>${project.basedir}/src/main/webapp</webAppSourceDirectory>
                    <connectors>
                    <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                        <port>80</port>
                        <maxIdleTime>60000</maxIdleTime>
                    </connector>
                    </connectors>
                </configuration> 
            </plugin>
        </plugins>
    </build>
</project>

 2、使用maven命令

      只压缩:mvn yuicompressor:compress

      打包自动压缩:mvn package -Dmaven.test.skip=true -U

 

注意:如果js文件中带有js调试断言:debugger; 是无法打包压缩成功的,可以使用eval('debugger');代替。

 

分享到:
评论

相关推荐

    使用yuicompressor压缩及合并js,css静态资源

    例如,如果我们有一个名为`style.css`的CSS文件和一个名为`script.js`的JavaScript文件,我们可以使用以下命令来压缩它们: ```bash java -jar yuicompressor.jar -o style.min.css style.css java -jar yui...

    YUI Compressor压缩JS和Css工具(包含详细配置)

    1. **命令行工具**:通过安装Java Development Kit (JDK),然后下载YUI Compressor的jar文件,可以在命令行中使用`java -jar yuicompressor.jar`命令进行压缩操作。 2. **集成开发环境插件**:许多IDE如Eclipse、...

    ant和yuicompressor 压缩css、js方案

    标题 "ant和yuicompressor 压缩css、js方案" 涉及到的是在软件开发中如何使用构建工具Ant以及JavaScript压缩工具YUI Compressor来优化前端资源,特别是CSS和JavaScript文件。这两个工具在Web开发中起着至关重要的...

    使用脚本+yuicompressor对js,css文件打包.pdf

    标题和描述中提到的技术点主要围绕如何使用批处理脚本结合yuicompressor工具来压缩和打包JavaScript(js)以及CSS文件。yuicompressor是一款高效的压缩工具,能够去除文件中的空格、换行和注释,从而减小文件体积,...

    yui compressor 2.4.2 javascript/css压缩程序

    java -jar yuicompressor-2.4.2.jar -o compressed.js input.js ``` 对于CSS文件,命令类似,只是扩展名不同。此外,`YUI Compressor` 还支持通过参数配置压缩级别、是否保留注释等选项。 5. **与其他工具的比较...

    YUI Compressor js css压缩工具

    在提供的文件中,`compressor.bat`是一个批处理脚本,用于调用`yuicompressor.jar`执行压缩任务。使用步骤如下: 1. **环境准备**:确保安装了Java运行环境(JRE)。 2. **运行脚本**:双击`compressor.bat`,或者...

    YUI compressor右键压缩脚本

    这个“YUI compressor右键压缩脚本”提供了一种便捷的方式,使得用户无需通过命令行或图形用户界面(GUI)就能快速对JS(JavaScript)和CSS文件进行压缩,大大简化了工作流程。 首先,我们来深入了解YUI Compressor...

    yui compressor js 、css 压缩大全

    在现代网页开发中,为了提高页面加载速度和优化用户体验,JavaScript (js) 和 Cascading Style Sheets (css) 文件的压缩至关重要。YUI Compressor 是 Yahoo! 开发的一款高效、强大的压缩工具,能够有效地减小 js 和 ...

    JSCSS压缩工具 YUI Compressor

    例如,在Gulp中,你可以安装`gulp-yui-compressor`插件,编写任务来自动压缩JS和CSS文件: ```javascript const gulp = require('gulp'); const yuicompressor = require('gulp-yui-compressor'); gulp.task('...

    用yuicompressor和Ant压缩Ext的CSS文件

    总之,“用yuicompressor和Ant压缩Ext的CSS文件”是一个前端性能优化的过程,通过使用Ant自动化工具和yuicompressor压缩库,可以有效地减小CSS文件的大小,提高网页的加载速度,为用户提供更好的浏览体验。...

    yuicompressor-2.4.8.jar

    对于Idea用户,可以通过安装第三方插件实现yuicompressor的集成,这样在编译项目时,可以直接对JavaScript和CSS文件进行自动压缩,简化了工作流程,提高了开发效率。 在Idea中配置yuicompressor,通常需要以下步骤...

    yuicompressor-2.4.8.zip js、css注释清理及压缩工具

    `yuicompressor-2.4.8.zip` 是一个前端开发中常用的工具,主要功能是对JavaScript和CSS文件进行注释清理和代码压缩,从而优化网页加载速度,提高用户体验。这个压缩工具出自YUI(Yahoo! User Interface Library)...

    YUI Compressor(JS压缩工具)

    **CSS压缩** 同样重要,YUI Compressor也处理CSS文件。它合并相同的属性值,删除未使用的CSS规则,以及压缩选择器和属性,从而减少文件大小。这有助于提高页面渲染速度,特别是在处理大型或复杂的样式表时。 为了...

    js、css压缩利器yuicompressor_2.4.2

    使用 `yuicompressor` 压缩 JS 和 CSS 文件,可以通过以下步骤操作: 1. 打开命令行终端,定位到 `yuicompressor.jar` 文件所在的目录。 2. 对于 JavaScript 文件压缩,输入以下命令: ``` java -jar yui...

    JS与css 压缩工具 yuicompressor.zip

    1. **代码压缩**:yuicompressor能够对JS和CSS文件进行压缩,删除无用的空格、换行和注释,使代码紧凑,减小文件大小。 2. **变量混淆**:为变量和函数名生成短小的随机名称,进一步压缩代码,防止被他人轻易理解...

    yuicompressor js压缩工具

    这里`yuicompressor-x.x.x.jar`是YUI Compressor的jar文件,`input.js`是要压缩的源文件,`output.js`是压缩后的目标文件,`--type js`指定压缩类型为JavaScript。 3. 集成到构建流程:YUI Compressor可以与构建...

    js、css 注释清理工具 (yuicompressor)

    `yuicompressor`是由Yahoo开发的一款开源的JavaScript和CSS压缩工具。它通过删除不必要的空格、换行符以及注释,将源代码压缩到最小化,从而减少文件大小,提高页面加载速度。在实际应用中,`yuicompressor`不仅能...

    YUI compressor源码jar包

    1. **可执行文件**:`yuicompressor-2.4.2.jar`是YUI Compressor的一个版本,包含了所有必要的类和资源,可以直接通过命令行进行JavaScript和CSS文件的压缩。只需将这个jar文件添加到系统路径,就可以在终端中运行`...

    yuicompressor.zip

    2. **集成到构建工具**:yuicompressor可以与常见的构建工具如Grunt、Gulp、Webpack等无缝集成,自动处理项目中的所有JS和CSS文件。 三、yuicompressor与其他压缩工具的比较 yuicompressor在性能上与Google的...

Global site tag (gtag.js) - Google Analytics