js压缩工具uglify-js--nodejs常用模块(3)

原创 2014年06月02日 10:16:18

模块介绍

  • 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

基于node的uglifyjs压缩JS

首先安装nodejs(windows下安装nodejs) 1.下载安装文件 下载地址:官网http://www.nodejs.org/download/ 2.安装文件 3...
  • ywj5200
  • ywj5200
  • 2016年12月29日 15:59
  • 2552

UglifyJS在Node.js下的安装

第一步: 打开命令行窗口(已配置环境变量,不明白的话可以看回这篇文章),输入npm install uglify-js -g 该窗口表示安装成功,接着配置环境变量,输入红色区域信息 ...
  • kavendb
  • kavendb
  • 2012年02月17日 14:41
  • 3178

UglifyJS 新一代的Javascript压缩工具

UglifyJS 在windows下执行UglifyJS压缩javascript脚本
  • pipi0714
  • pipi0714
  • 2011年04月09日 10:56
  • 6073

不安装node、npm,直接使用uglify批量压缩js文件

var fs = require("fs"); var jsp = require("./uglify-js").parser; var pro = require("./uglify-js").ug...
  • u014332097
  • u014332097
  • 2014年05月20日 12:54
  • 1405

Uglify JS安装

项目的js文件需要合并压缩 Uglify JS是node.js的压缩程序。 使用需要先安装node,进入命令行,查看node,npm是否正确安装。 node -v v0.*** npm -v...
  • cp1001
  • cp1001
  • 2015年07月14日 15:42
  • 563

nodejs进行js代码批量压缩

一.用到的工具包: 1、node.js  2、uglifyjs  3、java  4、ant  二.安装ant 下载地址:http://ant.apache.org/bindo...
  • xuweilinjijis
  • xuweilinjijis
  • 2016年12月19日 16:04
  • 684

nodejs 对文件进行 压缩加密和解压缩解密

utils.js var fs = require('fs'); var zlib = require('zlib'); var crypto = require('crypto'); funct...
  • dai_jing
  • dai_jing
  • 2016年10月26日 17:31
  • 2428

使用uglify给js、css 压缩、混淆

grunt使用小记之uglify:最全的uglify使用DEMO http://www.cnblogs.com/artwl/p/3449303.html (这个里的build all 方法不错,直接把...
  • kepoon
  • kepoon
  • 2016年11月29日 10:10
  • 3778

node下使用UglifyJS压缩合并JS文件

现在UglifyJS的最新版本为 2.8.13,主要功能为JS的压缩和合并,下面直接进入教程: 安装: npm install uglify-js -g 将uglifyjs安装为全局变量,方便我...
  • itKingOne
  • itKingOne
  • 2017年03月17日 14:12
  • 1350

使用nodejs插件UglifyJS2压缩js文件

  • 2017年06月10日 22:43
  • 64KB
  • 下载
收藏助手
不良信息举报
您举报文章:js压缩工具uglify-js--nodejs常用模块(3)
举报原因:
原因补充:

(最多只允许输入30个字)