0

我目前正在使用一个包含在一堆网站中的大型 Javascript 代码库(目前缩小了大约 150k)。随着更多功能的添加,它的大小一直在增长,所以我现在正在研究可以减小大小的方法。

目前可用的选项之一是从纯 JavaScript 切换到 compile-to-JS 库。这在开发过程中可能会有所帮助,因为基于类的 OOP 和编译时类型检查等功能可以为我们节省一些工作。但是,重要的是这样的更改不会增加代码库的大小,而不是纯粹在 JS 中工作。我研究过的所有语言似乎都没有特别关注输出大小。Dart 看起来是最好用的,但编译后的输出大得离谱。GWT 引入的问题多于它解决的问题,而且输出结果也不是特别令人愉快。我自己没有尝试过 Haxe,但一位同事尝试过,他告诉我它的输出非常臃肿。到目前为止,CoffeeScript 似乎是最有前途的,因为输出是相当标准的 Javascript,

是否有一种编译为 JS 的语言可以生成简洁的 JavaScript 并很好地缩小(尤其是使用 Google Closure),同时使开发过程更容易?还是我们更好地坚持手写 JS?

如果手写 JS 是要走的路,是否有任何工具或技术可以对输出大小产生特别大的影响?谷歌的闭包库看起来很有趣,因为它们和我们自己的代码在功能上有很多重叠,但好处必须是显着的,因为要切换到这个库需要做很多工作。

4

1 回答 1

2

如果您正在查看非 JS 语言选项,您应该考虑以与 Closure Compiler 的 ADVANCED 优化兼容的样式简单地使用带注释的 JS。这可能会为您提供最小的代码大小,同时仍然能够利用纯 JS 库。

对于更狂野的选择,我听说过 JSX 和 UberScript(类型增强型 CoffeeScript)的好消息,它们都可以生成合理的 Closure Compile 样式的 javascript。

通过源映射进行源级调试应该使底层 JS 源的“漂亮”不那么相关。我不知道这两个项目的 Source Maps 的状态。Dart、GWT 和 Closure Compiler 都生成它们。

于 2012-08-10T19:21:02.857 回答