模块介绍
- 优点:yuicompressor工具可以压缩js和css,并且可以控制js压缩时混淆和不混淆,支持的功能很全,其他的几个工具只是支持了它的一部分工具。
- 缺点:它的压缩率比其他几个压缩工具(js的jsmin,uglify-js;css的clean-css)略低,但是可接受的。
说明文档
https://github.com/yui/yuicompressor
来个demo说明下吧
第一步,新建一个文件夹(后面我们称之为根目录),并在根目录下执行如下命令
npm i yuicompressor
第二步,在根目录下新建一个文件命名为test_min_js_hello_baby.js,其内容如下:
var fs = require('fs');
var compressor = require('yuicompressor');
compressor.compress('../source/test_demo.js', {
charset: 'utf8'
}, function (err, data, extra) {
fs.writeFile('../source/test_demo_result.js', data, function(){
console.log('yuicompressor success!');
});
});
第三步,在根目录下新建一个文件夹,命名为source。然后随便找一个js文件命名为test_demo.js,并放到source目录下。
第四步,在根目录下执行如下命令。我们会看到在source目录下生产了一个名为test_demo_result.js新文件,这个就是test_demo.js文件经过yuicompressor压缩后的文件。
node test_min_js_hello_baby.js
参数说明
根据上面的demo可以看出,compress函数支持三个参数。
第一个参数
String类型;一个文件路径或一段js代码。
第二个参数
Object类型。支持的属性有:
- charset 文件编码类型,默认为'utf8'
- type 文件MIME类型,默认为'js'
- line-break 压缩时,多长的字符才开始换行。如果不指定这个值,压缩出来的文件只有一行
- nomunge 只进行mini压缩(去注释,去空格),不进行混淆(把函数命名也进行压缩)。默认为false
- preserve-semi 不知道干嘛的,待了解。
- disable-optimizations 不知道干嘛的,待了解。
第三个参数
(略)