js压缩 uglify(2)

摘要:
Uglifyjs的安装代码如下:npminstalluglify-js-g。回车后,您将看到如下内容:然后可以压缩JS。下面展示了如何使用uglifyjs压缩JS。我的桌面上有一个名为formini的文件夹。我会将要压缩的文件放在其中,然后进行压缩。然后双击批量使用uglifyjs压缩JS文件!目前,我仍然无法使用uglifyjs压缩CSS文件。

一、故事总有其背景

年末将至,很多闲适的时间,于是刷刷微博,接触各种纷杂的信息——美其名曰“学习”。运气不错,遇到了一个新名词,uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基于node的,还据说比Google Closure Compiler更带感,哦?激起了我的好奇心。百之谷之,哟,相关的介绍还不少。然后折腾了个把小时,基本上知道了是个怎么回事。

我觉得吧,还是有些用的,即使是不是从事node开发的人,抽个小空,share之,于是就有了本文。人总有浮躁的时候,我也不例外,uglifyjs内部深入的运作是如何的,唉,我是有气无力,不想去折腾,所以,本文更多是停留在应用层面。不过嘛,这样反而受众面广一些。毕竟喜欢看《泰囧》的人要比《一代宗师》的多。

二、node相关的固定流程

凡事提及node应用,无非免不了类似下面的流程:

  1. 安装node
  2. 安装nmpnpm
  3. 安装当前应用 – uglifyjs

前两个网上太多示意了,我之前也讲过,sorry, 我很懒。
uglifyjs安装如下code:

npm install uglify-js -g

一个回车,于是啪啪啪,就有下图所示的东东:
uglifyjs安装显示截图 张鑫旭-鑫空间-鑫生活

于是,下面就可以压缩JS了。

三、uglifyjs JS压缩

uglifyjs压缩有很多的参数,详见其github托管项目。其中有一些可选参数,如下部分截图:
uglifyjs的一些可选参数截图

什么美化压缩,空格多长,变量名是否变成短名字等……您有兴趣可以自己去看看,如果今天不是星期五,如果不是要赶回去买菜,我就会翻译下的——诸位,请原谅我吧,阿门!

下面演示如何使用uglifyjs压缩JS.

我的桌面上有个名叫formini的文件夹,我会把要压缩的文件放在其中,然后再压缩。现在,我从内部拷贝了一个名叫inet.js的JS文件到这个文件夹中,然后:

  1. 打开cmd, 这个不会我就没有办法了
  2. 目录引到formini文件夹,cd 然后什么什么的,这个不会我也没有办法了
  3. 如下代码:
    uglifyjs inet.js -o inet-min.js
  4. 再运行如下代码,测试-m可选参数:
    uglifyjs inet.js -m -o inet.min.js

    如下截图:
    压缩运行代码

噢啦,现在就是看结果了,见下截图:
压缩后的JS文件大小 张鑫旭-鑫空间-鑫生活

90K的是没有运行-m参数的,70K(69.4)的是运行的。-m参数所以就是把变量名变成a, b, c, d, ...

从实际应用角度讲,上线的JS显然要压缩变量,减小一定的文件尺寸。

跟YUICompressor相比,大小只小了0.6K, 不过网上反映uglifyjs相比YUI压缩很明显,我这里的大小仅优化了0.6÷174=0.345%,这只能说明我写的代码还算比较优化,哈哈(突然想起了老婆的话,不要得瑟,深呼吸……深呼吸……)!
YUICompressor压缩后的大小

四、uglifyjs压缩批处理

我们不可能每次都打开cmd去键入压缩执行代码,容易写错不说(如上面那个结果图),还耗时,想想都会让人疯掉。懒人有懒法,花了点功夫,折腾了一个批处理文件,以后,想要压缩JS,只要双击运行这个.bat文件就可以了!完整代码如下:

@echo off
:: 设置压缩JS文件的根目录,脚本会自动按树层次查找和压缩所有的JS
SET JSFOLDER=C:UsersAdministratorDesktopformini
echo 正在查找JS文件
chdir /d %JSFOLDER%
for /r . %%a in (*.js) do (
    @echo 正在压缩 %%~a ...
    uglifyjs %%~fa  -m -o %%~fa
)
echo 完成!
pause & exit

新建一个txt文档,任意命名,将上面的代码粘贴进去,修改JSFOLDER后面的文件夹目录为你自己的,然后把.txt后缀改成.bat就可以啦!然后双击就可以批量使用uglifyjs压缩JS文件啦!

四、结束语

对于自己来讲,本文内容算作备忘。目前而言,我还是uglifyjs不能压缩CSS文件。不过嘛,了解下总会有帮助的。行文匆忙,文中要是有表述不准确的地方欢迎指正。

原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]
本文地址:http://www.zhangxinxu.com/wordpress/?p=2946

免责声明:文章转载自《js压缩 uglify(2)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 使用官方下拉刷新Flask 遇到 500 Internal Server Error 解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js scroll动画

知识点 1、window.scrollTo (x,y):可以把内容滚动到指定位置  scroll  scroll:卷动意思(书卷)  从上到下移动   1、window.onscroll 窗口滚动事件(必须有滚动条才可以触发) body{height: 5000px;} window.onscroll=function () {...

Rhino -- 基于java的javascript实现

javascript引擎大家比较熟悉的应该是当前比较火的Chrome V8引擎。以快速闻名。v8基于c++开发。这里就不多阐述了。另外一个是 基于java的Rhino引擎,这个想来大家不是很了解。下面来简单介绍一下。 Rhino简介 (简介这部分是抄的) Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozill...

关于浏览器对html, js,css的解析先后顺序的理解

1.首先要了解页面的结构(包含哪些元素?哪些计算机语言能够在页面中运行 ) (1)html          不仅可以包含文字,还可以包含图片、链接,甚至音乐、程序等非文字元素的标记语言          (展示给用户,不能太单调,css) (2)css          是一种用来表现HTML的计算机语言,能使HTML页面变得更加美观        ...

iframe中插入代码并执行

最近有需求通过iframe插入代码。有蛮多方法,如下: 1 var iframe = document.getElementById('previewUrl'); 2 iframe.src = 'about:blank'; 3 iframe.contentWindow.document.body.innerHTML+="12312" 4 iframe.co...

js读取解析JSON类型数据(转)

谢谢博主,转自http://blog.csdn.net/beyond0851/article/details/9285771 一、什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式, 是理想的数据交换格式,同时,JSON是 JavaScript 原生格式。 非常适合于...

js, 树状菜单隐藏显示

js写的不是很严谨~~~嘿嘿   <!DOCTYPE html> <html> <head> <metacharset="UTF-8"> <style> #ul_treeul {     display: none; }   </style> <title>树状菜单&l...