`
renzhen
  • 浏览: 251130 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

放弃繁琐的配置!直接使用UglifyJS批量压缩目录下所有JS文件

阅读更多
     JS代码压缩是一种十分常见的前端优化的手段,对于大量使用JS的Web应用,代码压缩可以是极大的减少代码的大小,加快传输效率,提高浏览的体验。
     而在所有的JS压缩工具中,UglifyJS在不改变JS语义前提下可以提供最好的压缩率,其优异的性能而广为称颂,而与它性能相对应的是复杂的运行环境,你需要安装nodejs、然后使用npm安装UglifyJS类库,最后还要编写js...My God,我只是想压缩一下代码而已。
     如果你和我一样既希望享受UglifyJS高效率,又苦恼于复杂繁琐的配置,你可以尝试如下方法。在网上有很多在线压缩JS代码的站点,支持UglifyJS也不少,但是只能手动操作,无法批量处理,实用性实在不怎么高。但是如果有站点提供REST API给程序调用,那结果就不同了。
     对于UglifyJS在http://marijnhaverbeke.nl/uglifyjs中就有一个可供程序调用的HTTP API:
引用

UglifyJS compression can be used as an HTTP service by sending a POST or GET request to this URL, with any of the parameters listed below either embedded in the URL, or in an application/x-www-form-urlencoded request body. The response body will contain the compressed code in case of a successful request, or an error message when returning an error HTTP status code.

code_url
A URL pointing at a JavaScript file to compress. Only the http: and https: protocols are supported. Invalid or errorring URLs will be ignored. This parameter can be given multiple times to concatenate the scripts at those locations together.
js_code
JavaScript code passed directly inside the request. Both this parameter and code_url can be given, in which case the code passed in js_code will end up after the code from URLs.
utf8
Defaults to off, can be passed (with any value) to allow non-ascii characters to appear in the output.
download
When given, this should contain a filename. The server will add a Content-Disposition header to the response, which causes typical browsers to download the response under the given filename.

  通过这个API,就可以使用任意的编程语言进行文件夹批量压缩JS的操作了。下面是我用PHP写的调用API批量压缩的小脚本:
<?php
set_time_limit(0);
$fromdir="E:\\wamp\\www\\wopop20\\script";
$todir="D:\\cscript";
compressDir($fromdir,$todir);
echo "success";
function compressDir($fromdir,$todir){
	if ($handle = opendir($fromdir)) {
			if(!is_dir($todir)) mkdir($todir, 0777, true);
			while (false !== ($file = readdir($handle))) {
					if ($file != "." && $file != "..") {
						$absolutefilename=$fromdir."\\".$file;
						if(is_file($absolutefilename)&&preg_match('/\.js$/',$file)){
//							echo $absolutefilename,'<br>';
							$str=compressJS($absolutefilename);
							file_put_contents($todir."\\".$file, $str);
						}elseif(is_dir($absolutefilename)){
							compressDir($absolutefilename,$todir."\\".$file);
						}
					}
			}
			closedir($handle);
	}

}

function compressJS($filename){
	$url="http://marijnhaverbeke.nl/uglifyjs";
	$filecontent=file_get_contents($filename);
	static $ch;
//	echo $filecontent;
	if(empty($ch)){
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HTTPGET, false);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	}

	$data=array('js_code'=>$filecontent,'utf8'=>'1');
	curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
	
	

	$compresstext=curl_exec($ch);
//	curl_close($ch);
	if(!empty($compresstext)){
		return $compresstext;
	}
	echo "compress {$filename} failed";
	return false;
}
?>
分享到:
评论
1 楼 hanbiaoo 2013-12-27  
安装node.js, uglifyjs都不是必须的。文件目录调整一下就可以直接ant或命令行运行

相关推荐

    js批量压缩工具

    批量压缩JS文件的工具大大提升了开发效率,尤其是在大型项目中,它能避免手动压缩每个文件的繁琐工作。同时,通过合理使用,它可以帮助优化网站性能,提供更好的用户体验。 在使用"js批量压缩工具"时,用户需要注意...

    js文件压缩工具使用方便

    这个过程包括将待压缩的JavaScript文件放入特定的“js”目录,然后运行一个名为“run.bat”的批处理文件,该文件很可能是预先配置好的脚本,用于调用压缩工具,并自动执行压缩任务。这种方法极大地方便了开发者,...

    批量更改目录或者文件名称

    在这种情况下,一个名为"批量更改目录或者文件名称"的小工具就显得十分实用。 这个小工具的主要功能是帮助用户批量重命名目录和文件。它简化了传统手动重命名的繁琐过程,节省了大量的时间。批量更改名称通常涉及到...

    gzip压缩js,csss文件

    在IT行业中,优化网站性能是至关重要的,其中一种方法就是对JavaScript(js)和CSS(css)文件进行压缩。本文将详细讲解如何使用gzip工具来压缩这两种文件,以减少网络传输的数据量,从而提高网页加载速度。 gzip是...

    JPG图片批量压缩软件

    用户只需指定源目录,即包含待压缩JPG图片的文件夹,再设置一个输出目录,软件就会自动遍历源目录中的所有JPG图片,并按照预设的压缩设置进行处理,生成压缩后的图片,存放在输出目录中。这样的设计极大地提高了工作...

    批量将目录下所有文件移动到指定目录源码

    标题 "批量将目录下所有文件移动到指定目录源码" 提供了我们即将讨论的核心主题:一种自动化批量处理文件移动的程序。这个程序是用C#编程语言编写的,可以帮助用户快速有效地管理大量文件,避免手动操作带来的繁琐与...

    压缩文件批量解压 支持带密码的压缩包

    在IT行业中,压缩文件是日常工作中常见的数据存储和传输方式,尤其在文件体积较大或需传输多个文件时,使用压缩工具能有效节省空间和提高效率。"批量解压"是处理大量压缩文件的一种高效手段,尤其对于那些需要解压的...

    眸目图片批量压缩器.zip

    眸目图片批量压缩器是一款图片压缩工具,它可以批量将成百上千张相片从几M压缩至100K甚至更小,软件界面十分简洁清晰,并且软件使用起来方便快捷,是一款非常实用,且又功能性强大的软件,让繁琐复杂的工作变得简单...

    指定目录下所有文件中批量查找替换字符串工具

    这个工具的主要功能是允许用户指定一个目录,然后在这个目录及其子目录下的所有文件中进行批量查找和替换操作。这样的功能在软件开发、文档编辑、代码管理等场景中非常实用,可以极大地提高工作效率。 首先,我们...

    IDEA类软件,js压缩插件

    "IDEA类软件,js压缩插件" 提供了一种便捷的方式来优化前端项目中的JavaScript(js)和SCSS(一种预处理器CSS的语法)文件,通过自动化压缩来减少文件大小,从而加快页面加载速度,提高用户体验。这款插件适用于那些...

    图片批量压缩软件

    在IT行业中,图片批量压缩软件是一种非常重要的工具,特别是在网页开发和数字媒体管理领域。它允许用户快速有效地减小图片文件的大小,从而节省存储空间,加快网站加载速度,优化用户体验,同时也便于文件的传输和...

    MP3批量压缩体积工具

    【标题】"MP3批量压缩体积工具"是一个实用程序,主要针对音乐爱好者和音频管理人员,旨在帮助他们有效地减小MP3文件的大小,以便节省存储空间或方便分享。这款工具通常采用先进的音频压缩算法,例如AAC或Opus,来...

    JPG图片批量压缩 V2.0

    《JPG图片批量压缩 V2.0:优化存储空间与高效传输的艺术》 在数字化时代,图片是我们生活、工作中不可或缺的一部分。从社交媒体分享到产品展示,JPG格式因其优秀的压缩比和广泛支持而成为了最常用的图片格式之一。...

    JS_CSS文件压缩工具(2)

    在IT行业中,优化网站性能是至关重要的,其中一项关键技术就是对JavaScript(JS)和CSS文件进行压缩。"JS_CSS文件压缩工具(2)"是一个专为此目的设计的小型实用程序,它能够帮助开发者批量处理文件,以减少网页加载...

    windows下如何批量删除当前路径下指定扩展名的文件,看这个bat文件就明白了

    批量删除同一扩展名的文件可以显著提高效率,避免手动逐个删除的繁琐。这里我们将通过一个批处理(BAT)文件来实现这一目标。批处理文件是包含一系列DOS命令的文本文件,它允许我们自动化执行一系列操作。 标题提到...

    图片批量压缩+转webp小工具

    【图片批量压缩+转webp小工具】是一款专为Windows用户设计的实用工具,它集成了图片压缩和转换为WebP格式的批量处理功能。在处理大量图片时,这款工具可以显著提高工作效率,减少手动操作的繁琐。下面将详细介绍这款...

    批量压缩软件 thumb

    例如,摄影师可能需要上传一批照片到网络,或者备份到云端,使用批量压缩软件可以快速完成这个任务,避免手动操作带来的繁琐和时间浪费。 此外,一些高级的批量压缩软件还可能具备预设配置、自定义压缩选项等功能。...

    批量修改windows下文件夹内文件名称 三种方式

    保存为`.bat`文件后,运行这个脚本会将当前目录及其子目录下的所有文件重命名为“新名称_随机数”的格式。注意替换“新名称”为你想要的前缀。 ### 3. 第三方工具 - 使用"批量改变文件名称.exe" 你提到的`批量改变...

    批量添加文件往rar压缩包工具rarbat

    总的来说,RARBAT作为一个专业的批量添加文件至RAR压缩包的工具,它简化了原本繁琐的压缩过程,让批量处理变得更加轻松。无论你是个人用户还是企业用户,只要面临大量文件的压缩需求,RARBAT都能成为你得力的助手,...

    JS CSS 压缩工具

    "JS CSS 压缩工具"就是这样一款实用的软件,它可以快速、有效地压缩指定目录下的所有JS和CSS文件。 首先,让我们了解一下JS和CSS压缩的原理。JS和CSS压缩的主要目的是去除不必要的空格、换行符和注释,同时进行变量...

Global site tag (gtag.js) - Google Analytics