node-minifier
v0.3.0
Published
a minify tool
Downloads
51
Maintainers
Readme
node-minifier
What is node-minifier used for
a minify tools for web development
单元测试
Usage
npm install node-minifier
require
node-minifer
var minifier = require('node-minifier');
JS压缩
- 使用
UglifyJS2
进行压缩 - 自动保留
/*! ... */
类型的注释 - 保留
$
,exports
,require
,define
不被替换 - 可以自定义需要删除掉的方法调用
//js中有个全局方法名为onMessageFromSWF, 这个方法名称不能被mangle, 可以把它定义成保留字。
//console的所有方法默认被移除,Y.log, Kissy.log, S.log也可以自定义移除。
//不要在console.log调用中改变逻辑,避免产生side effect
var minifiedJS = minifier.minifyJS(jscontent, {
expect: ['onMessageFromSWF'],
banner: '在文件头部加入的内容',
footer: '在文件尾部加入的内容',
remove: ['console', 'Y.log', 'Kissy.log', 'S.log']
});
//默认将中文转成Unicode编码,可以通过下面的方式不转码
this.minifyJS(jscontent, {
ascii_only: false
});
JSON压缩
minifyJSON
方法可以对JSON代码进行压缩或格式化
//压缩
var minifiedJSON = minifier.minifyJSON(content);
//格式化
var formatJSON = minifier.minifyJSON(content, {indent: 2});
CSS压缩
var minifiedCSS = minifier.minifyCSS(content);
HTML压缩
var minifiedHTML = minifier.minifyHTML(content);
对CSS进行DataURI (支持webp格式)
var datauriCSS = minifier.datauri(content, {
input: 'the-dir-of-css-file'
});
如果CSS中定义了图片以绝对路径作为访问地址,需要额外定义绝对路径
.btn{
background: url(/img/btn.png);
}
var datauriCSS = minifier.datauri(content, {
input: 'the-dir-of-css-file',
workspace: '/var/www/home-website/static/img'
});
图片压缩
minifyImage
方法会先尝试使用optimage
方法压缩图片,如果失败,则降级到使用smushit
方法压缩。
optimage
- 使用本地的压缩工具压缩。smushit
- 使用smush.it
API进行压缩。
minifier.minifyImage('logo.png', 'logo.min.png', function(e, data){
if(e){
console.log(e);
}else{
console.log(data.msg);
}
});
压缩jpg - 使用
jpegtran
压缩jpg
minifier.optimage('input.jpg', 'output.jpg', function(err, data){
console.log(data.saved);
});
压缩png - 使用
optipng
,pngcrush
,pngquant
,advpng
压缩png
minifier.optimage('input.png', 'output.png', function(err, data){
console.log(data.saved);
});
压缩gif - 使用
gifsicle
压缩gif
minifier.optimage('input.gif', 'output.gif', function(err, data){
console.log(data.saved);
});
图片压缩统计
| 图片类型(数量) | 压缩前(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
方法。