[How-To]如何使用GNU Make 简化Google Closure Compiler的使用
来源:互联网 发布:气味图书馆淘宝 编辑:程序博客网 时间:2024/05/17 01:49
欢迎访问墙外地址:http://lzsblog.appspot.com/?p=299001
向StackOverflow.com的大牛致谢
这几天搞了个PHP的项目,为了节约服务器资源把大量的功能用前端的JavaScript代码实现。而你懂的,这些代码的内容是比较敏感的信息,最好不要让别人轻易的读出和理解。Google Closure Compiler在代码压缩和混淆方面做的很好,可以很好的隐藏代码逻辑。中文内容也会编码成不可读的文本。
那么,每次更改了原始JS代码之后,都要手动的更新传给前端的代码,而且要设定特定的访问规则让客户端不能访问原始JS代码。这是个很费事而且容易出错的工作。我就想能不能写一个Makefile脚本自动的更新被更改的JS代码。
说办就办
我的网站那用的是NginX + PHP,用Apache的同学只要适当的设置访问规则,问题是一样的。假设所有的前端代码存储在/js文件夹(你的HTML文件里的JS代码都从这里引用),这里我在/上创建一个/design文件夹用来存放原始代码。在NginX的配置文件里我们添加如下几行让design文件夹不能被访问。
1
location ~ ^/(design)/ {
2
deny all;
3
}
1
filelist = thermometer.js logic.combat.js analyse.js logic.js
2
.PHONY: all
3
wp := $(foreach k, $(filelist), ../js/$(k))
4
5
all : $(wp)
6
../js/%.js : %.js
7
java -jar compiler.jar --js=$< --js_output_file=$@
然后把Google Closure Compiler拷贝到这个文件夹之下即可。每次更改一个或多个JS文件之后,只要在命令行输入make命令,或者在Vim的命令模式下输入:make,即可更新所有被更改过得原始JS文件对应的编译完的JS文件。
这里我是用的Google Closure Compiler,其实任意的代码混淆器都可一用这个模板,输入文件参数写$<,输出文件参数写$@即可。
转载请注明:http://lzsblog.appspot.com/?p=299001
PS:千万注意java前面是一个Tab,别直接从网页里拷过去就用了,会出错的
- [How-To]如何使用GNU Make 简化Google Closure Compiler的使用
- 使用Google 的 Closure Compiler来压缩javascript
- 使用Google closure Compiler 压缩javascript文件
- solaris10下如何使用GNU的make?
- 使用Google JavaScript Closure Compiler压缩 javascript 文件
- 使用Google Closure Compiler高级压缩Javascript代码
- 如何有效的使用谷歌搜索引擎(How to Use Google Search More Effectively)
- Google Closure Compiler with PHP
- Google Closure Compiler开源的javascript压缩加密工具
- Google Closure Compiler开源的javascript压缩加密工具
- How to make brew faster 使用mirror 加速brew的安装过程
- Google Closure Compiler --js压缩优化
- Google Closure Compiler+Ant压缩文件(Js)
- Google Closure Compiler+Ant压缩文件(Js)
- JavaScript Compiler Power by Google Closure Tools
- google javascript 代码压缩工具 Closure Compiler
- GNU make 使用笔记 (一)
- 使用GNU make 编译C程序
- Frame框架编程技术详解
- Source Insight的一些技巧
- 编程:阿拉伯数字转为钱数@递归方法(如123,转为一百二十三)
- 如何在 Eclipse 中显示代码的行号 .
- 片上总线Wishbone 学习(五)总线周期之复位操作
- [How-To]如何使用GNU Make 简化Google Closure Compiler的使用
- 编程:冒泡,选择,归并,快速
- Ubuntu-server 无法上网的解决办法
- [How-to]如何更加方便的在FreeBSD中使用ntfs-3g
- Eclipse 不能build, pom文件上面有叉叉 解决办法
- SqlServer位运算 权限设计
- 带环求环起开始节点位置
- iphone ios 视频拍摄旋转
- 仿iphone 气泡短信 自定义list适配器实现