2012-03-28 109 views
0

我知道javascript压缩的问题已被多次询问,但我找不到任何回答我的问题。将多个JavaScript文件压缩到单独的文件中

我有一个项目,有共同的脚本(jQuery和其他几个)和页面特定的。 jQuery Mobile允许您在会话期间通过下载仅在<head>中的任何内容来缓存常见脚本。只要您将<script>置于<div data-role="page">中,只有页面加载时才会拖动特定的脚本。

我觉得这很棒,因为它优化了在浏览我的应用程序页面时下载的脚本,并确保浏览器在任何时候都具有最小的JavaScript内存。

但是,由于不能合并的各种文件之间存在依赖关系,因此缩小是非常可怕的。

到目前为止,我发现不适合我这么好两个解决方案:使用一个简单的缩小脚本,不改变函数和变量名

  • :双打的文件的大小相比,高级版本
  • 把所有的脚本放在一个压缩它,然后把它放在<head>:你失去了只下载你可能想脚本能力和浏览器加载

不必要的功能(我排除manua LLY明显改变函数名;))

我要寻找一个压缩机,可以做其中的一个:

  • 压缩所有文件一起,但将他们输出到单独的文件,以保持模块化
  • 如果不可能,以高级方式独立压缩文件,但使用标签可防止缩小器将链接重命名为外部函数或变量(如jQuery)

它存在吗?

回答

0

在熟悉所有这些之后,Google Closure Compiler可以做到这些(还有更多)。

要走的路是定义为实习医生:

  • 您正在使用(jQuery的,jQuery Mobile的...)的第三方库。你可以找到some of them there
  • 的自制您加载seperately

显然,如果压缩被分别装在自制的脚本,你应该导出你想在其他地方使用使用以下方法(detailed in Closure Compiler documentation)变量脚本:

/** 
* A function you want to be able to call from elsewhere after compressing 
* @param {string} a 
*/ 
function exportedFunction(a) {alert(a);} 

window['exportedFunction'] = exportedFunction; 

然后,你可以批量或分别压缩你想要的文件。这是一个非常强大的工具,我不敢相信我以前没有使用它。

相关问题