我应该如何开始一个新的JavaScript项目(测试,开发,构建)?

问题描述:

我已经开发了JavaScript多年,但从来没有真正考虑过整个测试,开发和构建的东西 - 但我意识到这是非常必要的。我们刚刚使用了一个带有简单版本标签的Subversion版本库(很快切换到git)。作为一个新的更大的纯JavaScript项目(使用jQuery)即将到来,我想优化整个过程。我应该如何开始一个新的JavaScript项目(测试,开发,构建)?

我已经做了一些研究,但从未找到一个很好的入门教程。

将类拆分成几个js文件而不是一个大的文件(正如Prototype或jQuery所做的那样)是一个好主意。这些js文件必须“构建”为一个文件。我如何实现这一目标?

单元测试我和我的同事正在编码的东西是非常必要的。我发现js-test-driver有一个eclipse插件,似乎在做他的工作很好。如果我的开发者文件夹包含所有这些src-和src-test-files,那么我如何将它集成到构建过程中?

我会回答你的问题的一部分:

这些JS-文件必须是“打造”成 单个文件。

这仅仅是与服务器端语言可能 - 在ASP.NET中你已经建立在对于工具,否则建立自己的“合并”服务器端的文件和参考的文件而不是实际的.js文件。

+0

好的,服务器端建设没有问题 - 但是哪种“建设”软件对JavaScript项目有好处?我遇到了Apache Ant和Rake,但老实说,我不知道它们是否方便。 – acme 2010-12-07 15:04:16

+0

@amce我的意思是简单的页面,例如`merger.php?files = myfile1,myfile2`将从磁盘读取给定文件的内容并写回浏览器。这里没什么特别的。 :-) – 2010-12-07 15:07:22

+0

好吧,我看到:-)也许它真的只够写一个自己的合并脚本,也可能包含一些像YUI Compressor这样的优化。 – acme 2010-12-07 15:13:23

为了进行测试,看看这个:https://*.com/questions/32809/javascript-unit-testing

对于合并所有的JavaScript到一个文件中,你可以使用像YUI Compressor。你需要首先寻找一个最小化器,然后再压缩。一个最小化器只需要这些文件并将它们合并在一起并摆脱空白。一台压缩机实际上会尝试通过更改变量名称和删除不必要的代码来为您优化js。

至于单元测试,我不确定你将如何做到这一点。那里有几个单元测试库。一种流行的测试工具是Selenium。我目前没有进行单元测试,所以我不在我的元素那里。

为了设置您的代码,您可以随时查看使用JavaScript框架(如ExtJS或JavaScriptMVC)。这些帮助您以正确的方式设置代码,并帮助您将团队集中在适当的标准和编码结构上,同时为您编写大量代码,因此您不必重新发明*。

编辑:只是一个很快的想法。即使您不想使用JavaScript框架,我也会建议您查看它们,尤其是ExtJS,以便了解它们是如何组织代码以及如何保持其清洁的一些技巧。

这些js文件必须“build”到一个文件中。我如何实现这一目标?

绝对保持您的文件在版本控制中分开,并且只在生成过程中合并它们。

YUI compressor mentioned elsewhere是一个基于java的工具,不仅可以合并,当然! - 压缩文件以加快下载。

如果您只是想简单合并文件,简单的Perl或bash脚本(或其他首选的脚本语言)可以将多个.js文件连接成一个发行版 - 只需确保构建脚本也更新所有HTML在发布中仅引用单个页面。