如果你是全局安装的,可以直接在需要混淆文件的目录下,
按住shift键右击鼠标选择在此处打开命令窗口如图
2.打开窗口后直接在窗口执行
uglifyjs main.js demo.js -o foo.min.js --source-map foo.min.js.map --source-map-root http://onbook.me -p 5 -c -m --wrap --export-all混淆文件main.js和demo.js生成foo.min.js和foo.min.js.map并指定map的来源网站
3.另一种使用方式是,把UglifyJS2包放到程序中,通过API对JS文件或JS代码进行压缩。首先,新建一个NPM项目文件package.json,然后在是下载UglifyJS2依赖包。
新建文件package.json{
"name": "nodejs-uglifyjs2",
"version": "0.0.1",
"description": "uglifyjs2",
"author": "Conan Zhang ",
"dependencies": {
}
}
4.执行npm install uglify-js --save下载UglifyJS2依赖包
5.安装完成后
新建test.js开始测试var UglifyJS = require('uglify-js')
//代码压缩
var result = UglifyJS.minify("var b = function () {}", {fromString: true})
console.log("\n===========================")
console.log(result)
//文件压缩
result = UglifyJS.minify(["demo.js"])
console.log("\n===========================")
console.log(result.code)
//多文件压缩,指定source map和网站来源
result = UglifyJS.minify(["main.js","demo.js"],{
outSourceMap: "out.js.map",
sourceRoot: "http://onbook.me",
mangle:true
})
console.log("\n===========================")
console.log(result.code)
console.log(result.map)
试了一下发布ES6,结果报错,不支持uglify-js,需要换插件。从论坛中找到如下链接:
https://bbs.egret.com/forum.php? ... 52516&highlight=es6
但是看了一下发现并不是很合适,因为Egret中有不少地方用到了uglify-js,换起来有点麻烦。
这里我直接使用uglify-js的harmony分支uglify-es,源在github上:
https://github.com/mishoo/UglifyJS2/tree/harmony
按以下步骤操作:
1.按上面链接的文档进行安装,我直接npm安装的,没有替换Egret集成的uglify-js
2.安装完后找到Egret库中的utils.js,我的Mac目录在:/Users/xxxxxx/Library/Application Support/Egret/engine/5.2.14/tools/lib/utils.js
3.打开utils.js进行修改:
找到:
修改为:
完成第一步,此处使用刚安装好的库
然后找到:
修改为:
此处是为了处理egret publish的时候会引起的编译错误。
4.执行egret publis,可以正常发布。
目前我这么处理还没问题,不知道是否有隐藏问题,感谢指正。
ES6越来越广泛,期待Egret官方能够把常用集成库都处理成支持ES6的版本。
5.备注:
uglify在对第三方库生成.min.js时,如果想集成到Egret中,不要加参数,直接输出即可。示例如下:
1.错误写法,能正常debug能正常release但不能正常运行:
2.正确写法,全部正常:
** 补充:如果编译目标可为es5,忽略以上全部说明,直接在lib中添加es6配置即可,如下