展开目录
用ClosureCompiler混淆代码
js压缩
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中

上午写了一个转格式的服务,为了不让客户直接得到我写的js原始代码,所以试着用compiler.jar进行了压缩和混淆。

我以前使用的压缩的命令行是:

java -jar compiler.jar code.js>code.min.js

但是在压缩es6的文件时遇到语法报错:

 ERROR - this language feature is only supported in es6 mode: destructuring. Use --language_in=ECMASCRIPT6 or ECMASCRIPT6_STRICT to enable ES6 features.

看来需要增加es6的参数。增加之后转换正常了,但是我突然想到,如果可以把es6的代码转成es3的写法,那么混淆程度不就更高了吗?!!

于是乎上google搜了一下,结果找到了这个页面。

仕事で使うJavaScriptにClosureCompilerを推してみる

我注意到了这行: ClosureCompilerにいつの間にかES6→ES3/ES5というトランスパイル機能が増えてるようで、babel.js的AltJSとしての側面もありそうだったので今回取り上げてみました。

java -jar compiler.jar --js mylogger.es6.js --js_output_file mylogger.es5.js --language_in ECMASCRIPT6 --language_out ECMASCRIPT5 --formatting pretty_print

增加参数 --language_out ECMASCRIPT5就可以实现输出ECMASCRIPT5的语法,--formatting pretty_print则是格式化输出的代码,加上缩进和换行。不过es5还不是我想要的,因为ie8或者更早的浏览器不支持,所以我把ECMASCRIPT5换成了ES3,最终得到了es3规范的代码。


附:

ClosureCompiler目前还在持续更新中,git链接:

https://github.com/google/closure-compiler

相关文档

暂无

随便看看

  1. windows电脑防止自动休眠

  2. 记一次nodejs内存泄漏的排查经历

  3. react项目webpack打包时拆分异步加载的文件

  4. 华为等国产手机rem宽度超过实际宽度

  5. css3 文字渐变色

  6. nginx用域名来转发请求

  7. SSL certificate problem: self signed certificate in certificate chain

  8. git删除远程分支

  9. 模拟307跳转情况

  10. 树莓派 3B/3B+ usb启动

  11. dd备份/还原

  12. linux自启动/禁止自启动服务

  13. git记住/删除账号密码

  14. 树莓派配置wifi

  15. centos7 开放或者关闭端口

  16. 简易版事件封装

  17. youku电脑版跳过广告代码

  18. 感谢beego陪伴我度过那不靠谱的半年

畅言模块加载中