视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
node下如何使用UglifyJS压缩合并JS文件
2020-11-27 20:01:35 责编:小采
文档

本文主要和大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,现在UglifyJS的最新版本为 2.8.13,主要功能为JS的压缩和合并,下面直接进入教程:

安装:

<span style="font-size:18px;color:#006600;">npm install uglify-js -g</span>

将uglifyjs安装为全局变量,方便我们在任何地方使用。

<span style="color:#006600;">下面是shell命令的中文解释:
* source-map [string],生成source map文件。
* –source-map-root [string], 指定生成source map的源文件位置。
* –source-map-url [string], 指定source map的网站访问地址。
* –source-map-include-sources,设置源文件被包含到source map中。
* –in-source-map,自定义source map,用于其他工具生成的source map。
* –screw-ie8, 用于生成完全兼容IE6-8的代码。
* –expr, 解析一个表达式或JSON。
* -p, –prefix [string], 跳过原始文件名的前缀部分,用于指定源文件、source map和
输出文件的相对路径。 * -o, –output [string], 输出到文件。 * -b, –beautify [string], 输出带格式化的文件。 * -m, –mangle [string], 输出变量名替换后的文件。 * -r, –reserved [string], 保留变量名,排除mangle过程。 * -c, –compress [string], 输出压缩后的文件。 * -d, –define [string], 全局定义。 * -e, –enclose [string], 把所有代码合并到一个函数中,并提供一个可配置的参数列表。 * –comments [string], 增加注释参数,如@license、@preserve。 * –preamble [string], 增加注释描述。 * –stats, 显示运行状态。 * –acorn, 用Acorn做解析。 * –spidermonkey, 解析SpiderMonkey格式的文件,如JSON。 * –self, 把UglifyJS2做为依赖库一起打包。 * –wrap, 把所有代码合并到一个函数中。 * –export-all, 和–wrap一起使用,自动输出到全局环境。 * –lint, 显示环境的异常信息。 * -v, –verbose, 打印运行日志详细。 * -V, –version, 打印版本号。 * –noerr, 忽略错误命令行参数。</span>

# UglifyJS2 使用方法

> UglifyJS2使用包括2种方式

1. shell 指令调用

2. api 调用

shell命令:

合并压缩start.js、test.js这两个JS文件

~> uglifyjs start.js test.js -o new.min.js --source-map new.min.js.map

API调用:

var fs = require('fs');
var uglifyjs = require("uglify-js");
var result = uglifyjs.minify("../test.js",{
 mangle:false
});

上面的一个基本核心方法 minify ,下面我们单独看下这个方法

这是一个非常智能的方法 ,共 2个参数

第一个参数 *

第一个参数可以是 字符串,路径,路径数组;

1.字符串参数

就是我们书写的 javascript 代码可以直接当做一个字符串参数参数函数,但是需要有第二个参数告诉函数,这是 javascript 源码字符串

var result = uglifyjs.minify("var fun=function(){ alert('itKingOne博客');};",{
 mangle:false,
 fromString:true,
});

上面的第一个参数传入了 javascript 源码,第二个参数中 formString : true ,就是告诉 minify 函数,前面的参数是 需要压缩的 javascript 源码.

字符串路径

这是函数默认支持的一种方式,可以单独的一个参数,直接给定一个 需要压缩的 javascript 文件路径, 当然也可以2个参数.

var result = uglifyjs.minify("../test.js");

上面的函数执行,会吧我的上级目录中的 test.js 进行压缩.默认一个参数时,表示文件路径

数组指定多个路径

可以一个参数,但是这个参数是一个数组 [ ‘路径1',‘路径2',‘路径3'] 类似这样结果就是把上面路径的所有 javascript 压缩后返回到了 result 对象中,稍后我们单独说下 result 返回值.

var result = uglifyjs.minify([ "../test.js", "../mian.js"]);

第二个参数*

参数说明

romString属性 (default false) 指定第一个参数中的 字符串是 javascript 源码

mangle属性 默认为true;指定为false时,表示不进行混淆压缩

width和max-line-len属性 按照说明,这里应该是指压缩后的文件的长度

outSourceMap属性 用来指定函数返回值result.map字符串转化为Object后file属性的值

sourceRoot属性 用来指定函数返回值result.map字符串转化为Object后sourceRoot属性的值

返回值 result *

返回值 result 是一个对象.code 属性对应的是压缩后的脚本

{"code":"这里是压缩后的 javascript 脚本","map":null}

下载本文
显示全文
专题