js,css压缩工具yuicompressor--nodejs常用模块(1)

时间:2023-02-03 19:45:56

模块介绍

  • 优点: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 不知道干嘛的,待了解。

第三个参数
(略)