【问题标题】:How should I start a new JavaScript project (Testing, Developing, Building)?我应该如何开始一个新的 JavaScript 项目(测试、开发、构建)?
【发布时间】:2010-12-09 21:47:13
【问题描述】:

我多年来一直在开发 JavaScript,但从未真正考虑过整个测试、开发和构建的东西 - 但我意识到这是非常必要的。我们刚刚使用了一个带有简单发布标记的 Subversion 存储库(即将切换到 git)。随着一个新的更大的纯 JavaScript 项目(使用 jQuery)即将到来,我想优化整个过程。

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

将类和代码块拆分成几个 js 文件而不是一个大文件绝对是个好主意(就像 Prototype 或 jQuery 那样)。这些 js 文件必须“构建”到单个文件中。我该如何实现?

对我和我的同事正在编码的东西进行单元测试是非常必要的。我找到了js-test-driver,它有一个似乎做得很好的eclipse插件。如果我的 developer-folder 包含所有这些 src- 和 src-test-files,我如何将其集成到构建过程中?

【问题讨论】:

    标签: javascript build-process project


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      要将所有 JavaScript 合并到一个文件中,您可以使用 YUI Compressor 之类的内容。您需要首先寻找最小化器,其次是压缩。最小化器只是获取文件并将它们合并在一起并摆脱空白。压缩器实际上会尝试通过更改变量名称和删除不必要的代码来为您优化 js。

      至于单元测试,我不确定您将如何去做。那里有一些单元测试库。一个流行的测试工具是 Selenium。我目前不进行单元测试,所以我没有我的元素。..

      为了设置您的代码,您总是可以考虑使用 JavaScript 框架,如 ExtJS 或 JavaScriptMVC。这些可以帮助您以正确的方式设置代码,还可以帮助您的团队专注于正确的标准和编码结构,同时还为您编写大量代码,因此您不必重新发明轮子。

      编辑:只是想了想。即使您不想使用 JavaScript 框架,我也建议您检查一下,尤其是 ExtJS,看看他们如何组织代码以及他们为保持代码整洁而采取的一些技巧。

      【讨论】:

      • 是的,我已经研究了一些 JavaScript 项目的技巧(Prototype、TinyMCE)。
      • @acme:Prototype 在技术上是一个 JavaScript 库,而不是一个框架。不同之处在于,Prototype 旨在将帮助功能捆绑在一起以简化 JavaScript 编程,而 ExtJS 是一个 JavaScript 框架,旨在构建完整的 JavaScript 应用程序。 ExtJS 利用了诸如模型视图控制器架构、命名空间和类的扩展/覆盖之类的东西。 Prototype、jQuery、Mootools 和 Dojo 都是很棒的库,但它们只是这些库。
      【解决方案3】:

      我会回答你的部分问题:

      这些 js 文件必须“构建”成 单个文件。

      这只有使用服务器端语言才有可能——在 ASP.NET 中,您为此构建了工具,否则构建您自己的“合并”服务器端文件并引用该文件而不是实际的 .js 文件。

      【讨论】:

      • 好的,服务器端构建没问题——但是哪种“构建”软件适合 JavaScript 项目呢?我遇到了 Apache Ant 和 Rake,但老实说,我真的不知道它们是否方便。
      • @amce 我的意思是简单的页面,例如merger.php?files=myfile1,myfile2 将从磁盘读取给定文件的内容并写回浏览器。这里没有什么花哨的。 :-)
      • 好的,我明白了 :-) 也许写一个自己的合并脚本就足够了,它还可能包括一些优化,比如 YUI 压缩器。
      【解决方案4】:

      这些 js 文件必须“构建”到单个文件中。我如何做到这一点?

      在版本控制中绝对将您的文件分开,并且只在构建过程中合并它们。

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

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

      【讨论】:

        猜你喜欢
        • 2011-07-28
        • 2010-09-05
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 1970-01-01
        相关资源
        最近更新 更多