1

所以闭包编译器很棒,但导出函数和定义外部函数似乎是太多的手工工作。有没有办法告诉编译器它不应该删除任何函数并且不应该重命名任何未定义的函数?

这背后我有两个主要原因:

  1. 如果一个函数或属性没有在 javascript 文档的范围内定义,那么它可能是在一个外部文件中定义的。因此,我不希望这些被重命名。

  2. 如果函数是在给定范围内定义的,但没有在同一范围内调用,那么它可能在某些外部代码中被调用。因此,我想将此函数保留在文件中而不重命名它。

这样,我们可以简单地编译 javascript 文件,而不必担心外部库和导出从 html 页面调用的函数。

4

2 回答 2

1

听起来您应该以 SIMPLE_OPTIMIZATIONS 的优化级别运行编译器。不要被名称所迷惑,因为它仍然可以完全编译您的代码。主要区别在于 SIMPLE_OPTIMIZATION 不会重命名或消除全局范围内的死代码。这意味着不再存在externs 和exports 的要求。

于 2012-06-02T12:25:17.440 回答
0

为了避免这种情况,我在一个完整的脚本上运行闭包编译器,该脚本是我的应用程序的所有脚本的串联。所以这是一个两步过程:

1 - 连接所有

2 - 运行闭包编译器

此外,您可能希望(正如我经常做的那样,由于 v1.8 之前的 jquery 存在问题)以 compilerLevel="simple" 运行编译器。

连接非常重要,因为通常速度慢与总大小无关,而主要与请求数量有关。

编辑:当然你必须自动化这一切。如果您使用 ant,我可以为您提供 ant 任务定义。

于 2012-06-02T10:40:40.807 回答