上午写了一个转格式的服务,为了不让客户直接得到我写的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
相关文档
暂无
随便看看
畅言模块加载中