在部署之前,您对JavaScript代码做了什么?

时间:2009-06-04 18:55:47

标签: javascript deployment release-management minify

您是否在部署过程中迈出了缩小JS的步骤?你有没有任何类型的JavaScript预处理器允许你留下评论和console.logs然后自动删除它们?你的JavaScript机器是由GWT还是脚本#生成的?您是否使用ANT或其他工具自动部署?

我看到很多JavaScript看起来就像编辑器一样,有很多空格和注释。这有多少是因为没有关心部署代码的状态,以及开放网络的精神是多少?

13 个答案:

答案 0 :(得分:11)

我经常使用JSLint查看它以确保它没有错误,然后用YUI compressor打包/编码。

答案 1 :(得分:4)

我的步骤包括:

  1. 我使用TextMate编写Javascript并安装了Javascript Tools包。这个JSLint是我在每次保存时的文件,并在发生错误时通知我。
  2. 我使用Sprockets自动连接各种Javascript文件。
  3. 我通过jsmin运行生成的连接以生成缩小版本。
  4. 我最终得到了一个连接的lib.js文件和一个缩小的lib.min.js文件。一个用于开发,一个用于生产。 TextMate命令可以自动完成所有操作。

    我仍然在寻找一个很好的解决方案来实际(单元)测试我的脚本。

答案 2 :(得分:2)

查看YUI Compressor它的控制台应用程序,您可以使用它来缩小(删除注释,空格等...)并混淆您的javascript文件。

答案 3 :(得分:2)

来自Douglas Crockford的{p> JSMin。我们已将它作为Studio中的宏连接,以及我们的一些大型项目的后期构建项目

答案 4 :(得分:2)

FWIW,这是一个有趣的迷你基准,可以通过各种方式最大限度地减少您的Javascript来源:

http://www.ericmmartin.com/comparison-of-javascript-compression-methods/

简而言之:

  • HTTP协议中的gzip压缩确实有所不同(尽管你需要在服务器端支付CPU成本)
  • 缩小(删除空格/注释,更改变量名称等)也有帮助,如果您想获得最佳结果,请将其与gzip压缩一起使用
  • 基于js的解压缩程序很可能没用 - 虽然您可能会缩小规模,但客户端上的CPU开销很大。

答案 5 :(得分:1)

对于我们的某个产品,我们将所有Javascript文件连接在一起(大多数文件都在大多数页面上使用,因此这对我们来说很有意义)并使用Javascript::Minifier。这给了我们一个非常好的速度提升。

答案 6 :(得分:1)

很多可能是因为没有关心那些可能在连接速度较慢的较慢机器上查看您的页面并假设每个人都有50Mbps线路和3 GAG RAM的人。

我们正在缩小我们(手写+插件,jQuery等)JS作为.NET环境中构建过程的一部分。没有预处理器,这是我们一旦允许就应该做的事情。

P.S。顺便说一下,我们没有使用console.log,因为这将破坏IE。相反,我们有一个简单的包装函数,如:

function log(stuff) {
    if (window.console && window.console.log) {
        console.log(stuff);
    }
};

答案 7 :(得分:1)

我有一个PHP脚本,它在服务器端执行它,并保留从源文件夹中提取的任何内容的缓存。

答案 8 :(得分:0)

一个字 - packer

答案 9 :(得分:0)

点燃一支蜡烛,对IE6错误低声祈祷,然后点击“开始”。这算数了吗? :)

答案 10 :(得分:0)

  1. 我没有缩小我自己的javascript代码,因为文本倾向于gzip / compress很好。
  2. 我会缩小一个非常大的(比如说> 100 kb)javascript库(但是我可能不会想要使用这么大的库(或者只是发布我使用的))。
  3. 我倾向于相信很多javascript-minification(实际上)是为了实现javascript代码的某种(徒劳)混淆而不是宣布的最终用户性能增益。

答案 11 :(得分:0)

还有a .NET port of YUI Compressor允许您: -

  • 将缩小/文件合并到Visual Studio构建后事件
  • 集成到TFS Build(包括CI)
  • 如果您希望在自己的代码中使用dll(例如,在飞行中缩小)。

答案 12 :(得分:0)

我以为我会分享我对js部署的方法。看看这篇博文: http://www.picnet.com.au/blogs/Guido/post/2009/12/10/Javascript-runtime-compilation-using-AspNet-and-Googles-Closure-Compiler.aspx

这还包括在运行时(使用谷歌的闭包编译器)在需要时编译的代码。

感谢Guido