您在部署过程中是否有缩小 JS 的步骤?您是否有任何类型的 JavaScript 预处理器,允许您在评论和 console.logs 中留下,然后自动删除它们?你的 JavaScript 机器是由 GWT 还是 Script# 生成的?您是否使用 ANT 或其他工具来自动化部署?
我看到很多 JavaScript 看起来像是直接从编辑器中出来的,包含大量空白和注释。其中有多少是由于不关心已部署代码的状态,又有多少是由于开放网络的精神?
您在部署过程中是否有缩小 JS 的步骤?您是否有任何类型的 JavaScript 预处理器,允许您在评论和 console.logs 中留下,然后自动删除它们?你的 JavaScript 机器是由 GWT 还是 Script# 生成的?您是否使用 ANT 或其他工具来自动化部署?
我看到很多 JavaScript 看起来像是直接从编辑器中出来的,包含大量空白和注释。其中有多少是由于不关心已部署代码的状态,又有多少是由于开放网络的精神?
我通常用JSLint检查它以确保它没有错误,然后用YUI 压缩器对其进行打包/编码。
我的步骤包括:
我最终得到一个连接的 lib.js 文件和一个缩小的 lib.min.js 文件。一个用于开发,一个用于生产。TextMate 命令有助于将这一切自动化。
我仍在寻找一个好的解决方案来实际(单元)测试我的脚本。
查看YUI Compressor,它是一个控制台应用程序,您可以使用它来缩小(去除评论、空格等)并混淆您的 javascript 文件。
来自 Douglas Crockford 的JSMin 。我们已将它作为 Studio 中的宏以及我们一些较大项目的后期构建项目连接起来
FWIW,这里有一个有趣的迷你基准,介绍了可以最小化 Javascript 源的各种方法:
http://www.ericmmartin.com/comparison-of-javascript-compression-methods/
简而言之:
对于我们的一款产品,我们将所有 Javascript 文件连接在一起(大多数文件在大多数页面上使用,所以这对我们来说很有意义)并使用Javascript::Minifier。这给了我们相当不错的速度提升。
很多可能是由于不关心可能在速度较慢且连接速度较慢的机器上查看您的页面的人,并假设每个人都有 50Mbps 的线路和 3 Gigs 的 RAM。
作为 .NET 环境中构建过程的一部分,我们正在缩小(手写 + 插件、jQuery 等)JS。没有预处理器,一旦时间允许,这是我们绝对应该做的事情。
PS顺便说一句,我们没有使用console.log,因为这会破坏IE。相反,我们有一个简单的包装函数,例如:
function log(stuff) {
if (window.console && window.console.log) {
console.log(stuff);
}
};
我有一个 PHP 脚本,它在服务器端执行它并保留它从源文件夹中提取的任何内容的缓存。
一字打包机
点燃蜡烛,低声祈祷 IE6 错误,然后单击“开始”。这算不算?:)
我倾向于相信很多 javascript-minification (实际上)是为了实现某种 javascript 代码的(徒劳的)混淆,而不是宣称的最终用户性能增益。
YUI Compressor还有一个 .NET 端口,可让您:-
我想我会分享我的 js 部署方法。看看这篇博文: http://www.picnet.com.au/blogs/Guido/post/2009/12/10/Javascript-runtime-compilation-using-AspNet-and-Googles-Closure-Compiler。 aspx
这还包括在运行时(需要时)编译(使用谷歌的闭包编译器)的代码。
谢谢圭多