javascript - 你的 JavaScript 工具链中有什么?

标签 javascript frameworks workflow development-environment

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

2年前关闭。




Improve this question




我希望开始用 JavaScript 编写一个复杂的应用程序以在网络上运行。我以前用 JavaScript 写过一些一次性代码,直接使用 DOM 和一点点 jQuery。但这是我第一次希望编写一个成熟的应用程序以在浏览器中运行。

所以,我想知道人们在 JavaScript 中进行认真的开发时更喜欢哪些工具链。特别是,我对以下内容感兴趣,以及一些关于您为什么选择您所做的组件以及它们如何整合到您的工作流程中的信息:

  • 你使用什么编辑器和编辑器插件/模式/脚本?我通常是 Emacs 用户,正在使用 js2.el目前,但我有兴趣了解其他设置。
  • 您是否使用任何类型的 IDE(Aptana、Dashcode 等)?
  • 您使用哪些 JavaScript 库或框架?
  • 您是否使用任何编译为 JavaScript 的语言(GWT、haxe、Objective-J)?
  • 你使用什么单元测试框架?你如何调用它们?是否可以从您的编辑器/IDE、命令行、网页中的浏览器或 JavaScript 调试器调用它们?
  • 您使用哪些自动化用户界面测试工具(例如 Selenium、Watir、Sahi)?再次,如何调用这些? (能够从命令行调用单元测试和接口(interface)测试对于运行构建机器人非常有用)
  • 您使用了哪些其他代码质量工具(JSlint、代码覆盖工具或任何其他类型的工具)?
  • 您在调试环境(Firebug、WebKit 检查器等)中使用什么?它与您的编辑器或 IDE 有任何集成吗?
  • 在部署代码之前,您对代码进行了哪些后处理(混淆器、压缩器、任何类型的优化器)?
  • 您是否有任何类型的工具来管理模块依赖项或根据需要动态加载代码?我正在编写的应用程序将使用大量代码,我希望将加载时间缩短,因此跟踪需要哪些模块或按需加载代码的工具会很有帮助。
  • 您的工具链中是否还有其他基本工具(专门针对基于浏览器的应用程序的 JavaScript 开发;我已经有一个非常好的版本控制系统、错误跟踪器等)?

  • 我对“这里有很多你可以使用的东西”的列表不太感兴趣(我知道很多可用的工具),更多的是你在实践中实际使用的堆栈以及它们是如何适应的一起。我希望将其主要开发为客户端应用程序,服务器仅用于身份验证以及存储和检索数据,因此我对您使用的服务器端框架不感兴趣,除非它是客户端不可或缺的一部分以某种方式辅助代码。

    编辑 :我对单元和用户界面测试框架以及如何自动化它们特别感兴趣。我更喜欢能够从命令行运行一个“make test”或“rake test”任务来运行项目的所有测试,并根据测试的成功或失败返回一个状态。这将使与构建机器人的集成更加容易。另外,如果有人为不依赖浏览器的代码编写可以在浏览器之外运行的单元测试(在 Rhino、spidermonkey、v8 等中),我很感兴趣,以便更快地周转您的一个子集测试。

    最佳答案

    What editor and editor plugins/modes/scripts do you use? I'm generally an Emacs user, and am using js2.el at the moment, but I'm interested in hearing about other setups.



    我一般用Textmate (使用 JavaScriptjQueryPrototype 包)。在进行繁重的前端开发时,我会在 HTML、CSS 和 JavaScript 文件之间快速切换,我会选择 vim 的拆分面板 View 。这样做时,我要么使用 macvim或终端 + Visor ,取决于我的心情。显然,我是 Mac 用户。

    Do you use any sort of IDE (Aptana, Dashcode, or the like)?



    不。我以前用过Coda ,但它的文本编辑器功能还有很多不足之处。我也玩过 Espresso ,这很有趣……但是嗯。

    What JavaScript libraries or frameworks do you use?



    我同时使用 jQueryPrototype ,取决于项目的需要。为了说明每个框架的优势,我喜欢将 jQuery 称为 DOM 操作框架,将 Prototype 称为脚本框架。因此,我倾向于在专注于标记的项目中使用 jQuery,而在脚本较多的应用程序类型项目中使用 Prototype。

    Do you use any of the languages that compile to JavaScript (GWT, haxe, Objective-J)?



    绝对不是 - 我对这样的框架有哲学上的提示。与服务器端代码不同,前端代码在用户浏览器中运行,处于您无法控制的环境中。因此,我认为编写尽可能最好的代码是 JavaScript 开发人员的责任。次优代码可能会影响性能,并且由像 Objective-J 这样的语言(这是我使用过的列表中唯一一种)编译的 JavaScript 永远不会像强大的 JavaScript 开发人员生成的代码那样紧凑。

    What unit test frameworks do you use? How do you invoke them? Can they be invoked from your editor/IDE, from the command line, from the browser in a web page, from your JavaScript debugger?



    我是 QUnit 的忠实粉丝,jQuery 单元测试框架。道场DOH Unit Testing也不错。

    不容错过 FireUnit ,用于单元测试的漂亮 Firebug 扩展。

    另见 Razor .

    What automated user interface testing tools do you use (such as Selenium, Watir, Sahi)? Again, how can these be invoked? (Being able to invoke unit tests and interface tests from the command line would be very useful, for running buildbots)



    必要时我使用 Selenium ,但这种情况很少见。

    What other code quality tools do you use (JSlint, code coverage tools, or anything of the sort)?



    我用和爱JSLint .

    Firebug 有一个不错的 code coverage extension , 和 HRCov被广泛认为是最好的品种。在我的大部分日常 JavaScript 工作中,我发现代码覆盖率没有多大用处。

    What do you use for your debugging environment (Firebug, WebKit inspector, etc)? Does it have any integration with your editor or IDE?



    就我而言,Firebug 是 JavaScript 开发的杀手级应用。一些有用的调试功能:
  • 变量工具提示
  • 断点和条件断点
  • 性能分析器
  • 一个非常漂亮的console API
  • watch 表情
  • 堆栈跟踪
  • 有用的插件,如 Jiffy , FireCookie , 和 FireQuery .

  • WebKit Inspector 很好,也是 DragonFly , 和 Debug Bar对跟踪 IE 错误很有用...但 FireBug 对我来说是一个。

    What post-processing do you run on your code before deploying it (obfuscators, minifiers, any kind of optimizers)?



    我非常有意地不使用任何后处理工具——JavaScript 的一大优点是它的开放性,我不想让初出茅庐的 JavaScript 开发人员更难从我的工作中学习。更不用说重建混淆的 JavaScript 非常简单。

    只有一个实例我需要缩小 JavaScript 以节省带宽。在那种情况下,我设置了一个 SVN post-commit hook运行 Doug Crockford 的优秀作品 JSMin .

    Are there any other essential tools in your toolchain (which are specific to JavaScript development for browser based applications; I already have a perfectly good version control system, bug tracker, etc)?


  • alert() 功能;)
  • 还,
    不错的JSON validator
    有用。
  • Visual Event对事件调试很有用
  • jsfuzzer , 为了
    模糊测试
  • 我不需要使用它,
    但是 Crosscheck在我的工具包中。
  • 关于javascript - 你的 JavaScript 工具链中有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1480186/

    相关文章:

    Git pull with rebase 导致过度冲突。我怎样才能修复我们的工作流程?

    javascript - 边缘、悬停和单击

    javascript - 什么是 PastryKit 框架?

    javascript - 如何使用渐变重新在 HTML5 Canvas 中绘制一条线

    ios - Swift 导入在包含框架时出现错误 "Could not build objective-C module ' Twitter'"

    css - 在 zurb Foundation 网格中嵌套行

    hadoop - "no such file or directory"oozie 错误

    在 gtk+ 中编译单个测试

    javascript - JavaScript 中的安全数据

    javascript - 显示与将作为 php 接收的输入不同的值