js压缩工具uglify-js--nodejs常用模块(3)
2014-06-02 10:16
387 查看
模块介绍
uglify-js是主流的js合并压缩工具,jquery现在用的就是这个工具。支持功能有:文件的合并,生产map文件,去注释去空格,混淆压缩
缺点:这个工具只针对js,至少官方没有说明支持css
说明文档
https://github.com/mishoo/UglifyJS2
demo
这里只贴了代码,具体步骤参考《js,css压缩工具yuicompressor--nodejs常用模块(1)》。
var fs = require('fs'); var uglifyjs = require("uglify-js"); var result = uglifyjs.minify("../source/test.js",{ mangle:false }); fs.writeFile('../source/test_uglify_js.js', result.code, function(){ console.log('uglify success!'); });
从上面代码可以看出,minify函数是同步的。
minify函数参数说明
第一个参数情况一:一段js代码 String类型,这时第二参数options里的fromString属性须要指定fromString为true。demo如下:
var result = uglifyjs.minify("var func = function(){var name = 'ppp'; alert(name);}",{ fromString:true, mangle:false });
情况二:文件路径 String类型,这时第二参数options里的fromString属性须要指定为为false(默认为false,这里可以不指定)。demo如下:
var result = uglifyjs.minify("../source/test.js");
情况三:文件路径的集合 Array类型,这时会合并这些文件,然后进行压缩。demo如下:
var result = uglifyjs.minify([ "../../../grunt/offline-package/Gruntfile.js", "../../../grunt/offline-package/test_glob.js"]);
第二个参数 options
fromString属性 (default false) — if you pass true then you can pass JavaScript source code, rather than file names.(见上)
mangle属性 默认为true;指定为false时,表示不进行混淆压缩
width和max-line-len属性 按照说明,这里应该是指压缩后的文件的长度。但写了demo试了下没效果
charset属性 这个属性是不存在的,yuicompressor里有这个属性,用来指定文件的解码类型,看样子uglify里做了自动识别。
outSourceMap属性 用来指定函数返回值result.map字符串转化为Object后file属性的值。demo:"out.js.map"
sourceRoot属性 用来指定函数返回值result.map字符串转化为Object后sourceRoot属性的值。 demo: "http://example.com/src"
inSourceMap属性 If you're compressing compiled JavaScript and have a source map for it, you can use the inSourceMap argument。demo:
var result = UglifyJS.minify("compiled.js", { inSourceMap: "compiled.js.map", outSourceMap: "minified.js.map" });
ps: 对于后面几个属性都是和map相关的,具体的介绍可以参考:http://www.2fz1.com/?p=565
相关文章推荐
- js压缩工具jsmin--nodejs常用模块(2)
- js,css压缩工具yuicompressor--nodejs常用模块(1)
- 详解Node.js API系列 Http模块(2) CNodejs爬虫实现
- node.js常用模块
- zip压缩工具jszip--nodejs常用模块(8)
- node.js常用模块
- NodeJS 常用模块推荐
- JS常用检测函数模块分析
- node.js学习笔记之常用模块介绍
- nodejs文件操作模块FS(File System)常用函数简明总结
- 路径模式匹配glob -- nodejs常用模块(7)
- NodeJS常用模块
- NodeJS 常用模块
- markdown--nodejs常用模块
- NODE.JS加密模块CRYPTO常用方法介绍
- 代码格式化工具 -- nodejs常用模块(6)
- 跟我学Nodejs(二)--- Node.js事件模块
- NodeJS 常用模块介绍
- NodeJS 常用模块推荐
- NodeJS常用模块收集