在项目中,前端的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');代替。
相关推荐
例如,如果我们有一个名为`style.css`的CSS文件和一个名为`script.js`的JavaScript文件,我们可以使用以下命令来压缩它们: ```bash java -jar yuicompressor.jar -o style.min.css style.css java -jar yui...
1. **命令行工具**:通过安装Java Development Kit (JDK),然后下载YUI Compressor的jar文件,可以在命令行中使用`java -jar yuicompressor.jar`命令进行压缩操作。 2. **集成开发环境插件**:许多IDE如Eclipse、...
标题 "ant和yuicompressor 压缩css、js方案" 涉及到的是在软件开发中如何使用构建工具Ant以及JavaScript压缩工具YUI Compressor来优化前端资源,特别是CSS和JavaScript文件。这两个工具在Web开发中起着至关重要的...
标题和描述中提到的技术点主要围绕如何使用批处理脚本结合yuicompressor工具来压缩和打包JavaScript(js)以及CSS文件。yuicompressor是一款高效的压缩工具,能够去除文件中的空格、换行和注释,从而减小文件体积,...
java -jar yuicompressor-2.4.2.jar -o compressed.js input.js ``` 对于CSS文件,命令类似,只是扩展名不同。此外,`YUI Compressor` 还支持通过参数配置压缩级别、是否保留注释等选项。 5. **与其他工具的比较...
在提供的文件中,`compressor.bat`是一个批处理脚本,用于调用`yuicompressor.jar`执行压缩任务。使用步骤如下: 1. **环境准备**:确保安装了Java运行环境(JRE)。 2. **运行脚本**:双击`compressor.bat`,或者...
这个“YUI compressor右键压缩脚本”提供了一种便捷的方式,使得用户无需通过命令行或图形用户界面(GUI)就能快速对JS(JavaScript)和CSS文件进行压缩,大大简化了工作流程。 首先,我们来深入了解YUI Compressor...
在现代网页开发中,为了提高页面加载速度和优化用户体验,JavaScript (js) 和 Cascading Style Sheets (css) 文件的压缩至关重要。YUI Compressor 是 Yahoo! 开发的一款高效、强大的压缩工具,能够有效地减小 js 和 ...
例如,在Gulp中,你可以安装`gulp-yui-compressor`插件,编写任务来自动压缩JS和CSS文件: ```javascript const gulp = require('gulp'); const yuicompressor = require('gulp-yui-compressor'); gulp.task('...
总之,“用yuicompressor和Ant压缩Ext的CSS文件”是一个前端性能优化的过程,通过使用Ant自动化工具和yuicompressor压缩库,可以有效地减小CSS文件的大小,提高网页的加载速度,为用户提供更好的浏览体验。...
对于Idea用户,可以通过安装第三方插件实现yuicompressor的集成,这样在编译项目时,可以直接对JavaScript和CSS文件进行自动压缩,简化了工作流程,提高了开发效率。 在Idea中配置yuicompressor,通常需要以下步骤...
`yuicompressor-2.4.8.zip` 是一个前端开发中常用的工具,主要功能是对JavaScript和CSS文件进行注释清理和代码压缩,从而优化网页加载速度,提高用户体验。这个压缩工具出自YUI(Yahoo! User Interface Library)...
**CSS压缩** 同样重要,YUI Compressor也处理CSS文件。它合并相同的属性值,删除未使用的CSS规则,以及压缩选择器和属性,从而减少文件大小。这有助于提高页面渲染速度,特别是在处理大型或复杂的样式表时。 为了...
`yuicompressor`是由Yahoo开发的一款开源的JavaScript和CSS压缩工具。它通过删除不必要的空格、换行符以及注释,将源代码压缩到最小化,从而减少文件大小,提高页面加载速度。在实际应用中,`yuicompressor`不仅能...
使用 `yuicompressor` 压缩 JS 和 CSS 文件,可以通过以下步骤操作: 1. 打开命令行终端,定位到 `yuicompressor.jar` 文件所在的目录。 2. 对于 JavaScript 文件压缩,输入以下命令: ``` java -jar yui...
1. **代码压缩**:yuicompressor能够对JS和CSS文件进行压缩,删除无用的空格、换行和注释,使代码紧凑,减小文件大小。 2. **变量混淆**:为变量和函数名生成短小的随机名称,进一步压缩代码,防止被他人轻易理解...
这里`yuicompressor-x.x.x.jar`是YUI Compressor的jar文件,`input.js`是要压缩的源文件,`output.js`是压缩后的目标文件,`--type js`指定压缩类型为JavaScript。 3. 集成到构建流程:YUI Compressor可以与构建...
1. **可执行文件**:`yuicompressor-2.4.2.jar`是YUI Compressor的一个版本,包含了所有必要的类和资源,可以直接通过命令行进行JavaScript和CSS文件的压缩。只需将这个jar文件添加到系统路径,就可以在终端中运行`...
2. **集成到构建工具**:yuicompressor可以与常见的构建工具如Grunt、Gulp、Webpack等无缝集成,自动处理项目中的所有JS和CSS文件。 三、yuicompressor与其他压缩工具的比较 yuicompressor在性能上与Google的...