我知道有关javascript压缩的问题已被多次询问,但我找不到任何回答我的问题。
我有一个项目,它有常见的脚本(jQuery和其他一些)和页面特定的脚本。 jQuery Mobile允许您在会话期间通过仅下载<head>
一次的任何内容来缓存常见脚本。只要您将<script>
放在<div data-role="page">
中,只有在加载页面时才会提取特定脚本。
我觉得这很棒,因为它可以优化浏览我的应用页面时下载的脚本,并确保浏览器随时都有最小的内存javascript。
但是,缩小是很糟糕的,因为不能合并的各种文件之间存在依赖关系。
到目前为止,我发现了两个不太适合我的解决方案:
<head>
:您将无法下载您可能需要的脚本并且浏览器已加载了不必要的功能(我排除了显然手动更改功能名称;))
我正在寻找可以执行以下操作之一的压缩器:
它存在吗?
答案 0 :(得分:0)
在熟悉所有这些之后,Google Closure Compiler可以做到这一点(以及更多)。
要做的是定义外部:
显然,如果压缩单独加载的自制脚本,则应使用以下技术(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;
然后,您可以批量或单独压缩所需的文件。它是如此强大的工具,我无法相信我之前没有使用它。