JavaScript压缩工具JSA使用介绍

JSA绝对是我使用过的JS压缩工具中最上乘的一个。认识它是从ligerUI开始。在ligerUI的QQ讨论组里,大神——ligerUI的作者告诉我他的ligerUI是用JSA混淆和压缩的。

好吧,赶紧下一个去:JSA-20071021.jar。地址是:

http://sourceforge.net/projects/jsintegration/files/tools/_%20JSA-20071021/

我们只要这个JSA-20071021.jar就足够了。

1)交互式JavaScript混淆和压缩工具JSA使用方法

如果你想JSA-20071021.jar作为一个客户端GUI工具软件来使用,那么打开一个cmd窗口,进入JSA-20071021.jar所在的目录,输入命令:

$ java -jar JSA-20071021.jar

按[确定],出现下面的窗口:

压缩前要先按下面的图设置:

接下来打开我们要压缩的文件ligerui.all.js:

开始压缩:

最后把压缩得到的文件保存出去即可:

2)自动化JavaScript混淆和压缩工具JSA使用方法

当然上面的方法我是用过一次绝对不会用第2次。其实自动化的方法可以参考JSA-20071021.jar里面的help.html。

其实很简单,建个目录jsa-demo,把JSA-20071021.jar放进去,jsa-demo目录下还有子目录src/,把ligerui.all.js放进去(当然可以放任何你喜欢的js文件),然后建一个jsa-demo/build.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="jsa-demo" basedir="." default="jscompress">
    <taskdef resource="jst-task.properties" classpath="JSA-20071021.jar" />
    <property name="src.dir" value="./src" />
    <property name="build.dir" value="./build" />
    <target name="jscompress" >
        <jscompress destDir="${build.dir}" charset="utf-8"
            allInOneFileName="ligerui.min.js"
            syntaxcompression="true"
            textcompression="true"
            compatible="true">
            <fileset dir="${src.dir}">
                <include name="*.js" />
            </fileset>
        </jscompress>
    </target>
</project>

打开命令行窗口,进入jsa-demo/目录,输入ant。一切搞定。

文章的使用环境要求java+ant。

cheungmine作品

2013-11-2 上海

JavaScript压缩工具JSA使用介绍的更多相关文章

  1. JavaScript function函数种类介绍

    JavaScript function函数种类介绍 本篇主要介绍普通函数.匿名函数.闭包函数 1.普通函数介绍 1.1 示例 ? 1 2 3 function ShowName(name) {     ...

  2. 9款最好的JavaScript压缩工具

    削减是一个从源代码中删除不必要的字符的技术使它看起来简单而整洁.这种技术也被称为代码压缩和最小化.在这里,我们为你收集了10个最好的JavaScript压缩工具将帮助您删除不必要的空格,换行符,评论, ...

  3. 9最好的JavaScript压缩工具

    削减是一个从源代码中删除不必要的字符的技术使它看起来简单而整洁.这种技术也被称为代码压缩和最小化.在这里,我们为你收集了10个最好的JavaScript压缩工具将帮助您删除不必要的空格,换行符,评论, ...

  4. 编写可维护的javascript代码---开篇(介绍自动报错的插件)

    文章开篇主要推荐了2款检测编程风格的工具: JSLint和JSHint: jsLint是由Douglas Crockford创建的.这是一个通用的javascript代码质量检测工具,最开始JSLin ...

  5. Fancytree Javascript Tree TreeTable 树介绍和使用

    Fancytree是一个非常棒的Javascript控件,功能强大,文档健全.在做Javascript Tree控件选型时,主要基于以下几点选择了Fancytree 在Javascript Tree控 ...

  6. JavaScript FormData的详细介绍及使用

    本文转自:https://blog.csdn.net/liupeifeng3514/article/details/78988001 FormData的详细介绍及使用请点击此处,那里对FormData ...

  7. JavaScript的知识基本介绍

    ECMAScript js简单介绍(与java的区别)        1.语法(区分大小写,弱类型,分号可写可不写)        2.变量(只能使用var定义,要么不定义,如果在函数内部使用var定 ...

  8. javascript Date对象的介绍及linux时间戳如何在javascript中转化成标准时间格式

    1.Date对象介绍 Date对象具有多种构造函数.new Date()new Date(milliseconds)new Date(datestring)new Date(year, month)n ...

  9. JavaScript ES6新特性介绍

    介绍 ES6:ECMScript6 首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系? ECMAScript是一个国际通过的标准化脚本语言: JavaScript ...

随机推荐

  1. BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

    这个坑爹的玩意 有几个出现错误的原因 服务器 1.服务器重复启动同一个部署 这个时候要停止然后启动 电脑差的 重启电脑 重启服务器就好了 代码 2.bean工厂不知道哪里关闭 3.bean工厂没有找到 ...

  2. 链表的无锁操作 (JAVA)

    看了下网上关于链表的无锁操作,写的不清楚,遂自己整理一部分,主要使用concurrent并发包的CAS操作. 1. 链表尾部插入 待插入的节点为:cur 尾节点:pred 基本插入方法: do{ pr ...

  3. Go 语言切片(Slice)

    Go 语言切片是对数组的抽象. Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固 ...

  4. 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,求这个队列中从队列投到队列尾的元素个数(包含队列头、队列尾)。

    #include <iostream> using namespace std; //循环队列(少用一个空间)长度 #define M (8+1) typedef struct node ...

  5. Java异常处理-----自定义异常

    自定义异常 问题:现实中会出现新的病,就需要新的描述. 分析: java的面向对象思想将程序中出现的特有问题进行封装. 案例: 定义功能模拟凌波登录.(例如:lb(String ip))需要接收ip地 ...

  6. cassandra 监控方案评估

    摘要 最开始做cassandra monitor 方案的选型时,主要是从cassandra 本身入手,后来发现cassandra运行在JVM上,所有的metrics都是通过JMX 暴露出来.所以又可以 ...

  7. Spark技术内幕: Shuffle详解(三)

    前两篇文章写了Shuffle Read的一些实现细节.但是要想彻底理清楚这里边的实现逻辑,还是需要更多篇幅的:本篇开始,将按照Job的执行顺序,来讲解Shuffle.即,结果数据(ShuffleMap ...

  8. 【DevOps敏捷开发动手实验】开源文档 v2015.2 stable 版发布

    Team Foundation Server 2015 Update 2版本终于在2周前的//Build 2016大会上正式发布了,借这个东风,小编也完成了[DevOps敏捷开发动手实验]开源文档的第 ...

  9. Android View的绘制过程

    首先是view的绘制过程~最主要的分三部分 measure layout draw 看字面意思,计算,布局,画~ android中控件相当于是画在一个无限大的画布上的,那就产生了几个问题 画布无限大, ...

  10. (一二〇)CALayer的一些特性

    1.每个View都自带一个CALayer,称为rootLayer,layer可以和实现与View一样的显示功能,但是它不继承UIResponse,也就是说它无法处理事件,所以为了处理事件还是要用Vie ...