node-minifier
What is node-minifier used for
a minify tools for web development
单元测试
Usage
npm install node-minifier
require
node-minifer
var minifier = ;
JS压缩
- 使用
UglifyJS2
进行压缩 - 自动保留
/*! ... */
类型的注释 - 保留
$
,exports
,require
,define
不被替换 - 可以自定义需要删除掉的方法调用
//js中有个全局方法名为onMessageFromSWF, 这个方法名称不能被mangle, 可以把它定义成保留字。//console的所有方法默认被移除,Y.log, Kissy.log, S.log也可以自定义移除。//不要在console.log调用中改变逻辑,避免产生side effectvar minifiedJS = minifier; //默认将中文转成Unicode编码,可以通过下面的方式不转码this;
JSON压缩
minifyJSON
方法可以对JSON代码进行压缩或格式化
//压缩var minifiedJSON = minifier;//格式化var formatJSON = minifier;
CSS压缩
var minifiedCSS = minifier;
HTML压缩
var minifiedHTML = minifier;
对CSS进行DataURI (支持webp格式)
var datauriCSS = minifier;
如果CSS中定义了图片以绝对路径作为访问地址,需要额外定义绝对路径
var datauriCSS = minifier;
图片压缩
minifyImage
方法会先尝试使用optimage
方法压缩图片,如果失败,则降级到使用smushit
方法压缩。
optimage
- 使用本地的压缩工具压缩。smushit
- 使用smush.it
API进行压缩。
minifier;
压缩jpg - 使用
jpegtran
压缩jpg
minifier;
压缩png - 使用
optipng
,pngcrush
,pngquant
,advpng
压缩png
minifier;
压缩gif - 使用
gifsicle
压缩gif
minifier;
图片压缩统计
图片类型(数量) | 压缩前(byte) | smush.it压缩掉(byte) | pagespeed压缩掉 | optimage压缩掉(byte) | smush.it平均压缩% | optimage平均压缩% | pagespeed平均压缩% | smush.it总计压缩% | optimage总计压缩% | pagespeed总计压缩% |
---|---|---|---|---|---|---|---|---|---|---|
gif(7) | 862177 | 26780 | 17074 | 23327 | 22.49% | 14.28% | 6.14% | 3.11% | 2.71% | 1.98% |
png(21) | 108978 | 20544 | 14286 | 39633 | 46.73% | 54.48% | 38.29% | 18.85% | 36.37% | 13.11% |
jpg(30) | 2497858 | 156327 | 210469 | 210469 | 3.48% | 11.6% | 11.6% | 6.26% | 8.43% | 8.43% |
PS: smush.it
和pagespeed
的压缩服务会将gif
格式转换成png
格式再使用pngcrush
工具压缩,所以压缩比总体可能会高于optimage
方法。