【发布时间】:2010-10-31 10:43:26
【问题描述】:
在您的部署过程中,您是否有缩小 JS 的步骤?您是否有任何类型的 JavaScript 预处理器允许您留在 cmets 和 console.logs 中,然后自动删除它们?你的 JavaScript 机器是由 GWT 还是 Script# 生成的?您是否使用 ANT 或其他工具来自动化部署?
我看到很多 JavaScript 看起来像是直接从编辑器中出来的,包含大量空白和 cmets。其中有多少是由于不关心已部署代码的状态,又有多少是由于开放网络的精神?
【问题讨论】:
-
如果您担心压缩率,此页面很好地概述了一些工具与一些最流行的 javascript 库实现的比率:compressorrater.thruhere.net。
-
我最近从“最佳实践”的角度想知道这个问题。我的 IT 极客说 Web 服务器应该处理压缩,而不是开发人员。我在 mootools 上进行了一些廉价的分析,发现使用 YUI 或其他任何方法进行预压缩会比标准 gzip 产生边际大小的改进,而标准 gzip 正是 Web 服务器将使用的。但是,这样的利润是否值得为“开放网络精神”带来麻烦和潜在的冒犯?
-
@Ben Dunlap:那是你同时做的时候:缩小和 gzip。您可以使用生产构建脚本进行压缩,服务器会为您处理 gzip。
-
@dalbaeb,是的,我知道——这正是我正在测试的;抱歉,如果不清楚。我采用了缩小版的 mootools 并对其进行了 gzip 压缩,然后将结果与 mootools 原始版本的 gzip 进行了比较。差别很小,所以我的问题是:如果网络服务器无论如何都应该压缩所有响应,那么缩小我能得到什么?因为我知道我通过缩小而失去:第三方读者的代码清晰度,以及我的时间(当我必须对发布代码进行更改时)。我想我正在尝试进行成本/收益分析。
-
通过缩小获得什么取决于您拥有多少代码。即使具有较短的变量/函数名称有时也可以减少整体大小和下载时间。我们在这里谈论毫秒,这是真的。但是用户等待的时间越少越好。此外,如果您只是为了生产而缩小,您仍然可以使用可读的“开发”版本。第三方读者的清晰度 - 是的,这会受到影响。同样,这取决于它对您的价值。
标签: javascript deployment release-management minify