用于前端javascript开发/测试和生产的工作流程/工具?

时间:2013-03-15 10:57:59

标签: javascript development-environment

生产中的Web前端javascript应用程序几乎没有“暴露”,即声明为全局var或附加到window

  • 将所有代码最小化并附加到一个(或几个)js文件;
  • 很少或没有“暴露”,即声明为全局变量或附加到window

在开发过程中,如果代码可读,分成几个文件,并且还可以从控制台访问原型和相关实例,那么生活会更容易。

为了更清楚(不考虑最小化,这很容易通过许多不同的工具获得),在制作中我会有类似的东西:

(function() {
  var Greeter = function() {
  };

  Greeter.prototype.msg = function() {
    return 'Hello, world!';
  };

  Greeter.prototype.greet = function() {
    console.log(this.msg());
  };

  new Greeter().greet();
}());

通过这种方式,我的代码可以在不暴露任何内容的情况下完成任务:Greeter对象及其实例都不会被其他代码访问。

(当然这只是实现这一目标的众多方法之一,但这不是问题的重点)。

但是,调试此代码很难,并且单元测试是不可能的。

为了允许调试和测试,我通常会将Greeter及其实例附加到window对象或其他对象。

因此,在开发过程中,我会使用类似的东西:

(function() {
  var Greeter = function() {
  };

  Greeter.prototype.msg = function() {
    return 'Hello, world!';
  };

  Greeter.prototype.greet = function() {
    console.log(this.msg());
  };

  window.Greeter = Greeter;
  window.greeter = new Greeter();

  window.greeter.greet();
}());

通过这种方式,我可以对Greeter进行单元测试,也可以从浏览器的控制台查询它以检查其状态。

是否有工具或一组工具或某种不同的方式来组织我的代码,以便可以从开发版本传递到生产版本(也将最小化)?

1 个答案:

答案 0 :(得分:1)

您无法安装单个软件包或可执行文件,这将使您100%完成任务。您需要结合编辑器,命令行工具和浏览器来创建有效的Web应用程序/ javascript开发环境。

  

3.18.13:为Sublime Web Inspector添加了一个链接。在Sublime Text中调试Javascript! http://sokolovstas.github.com/SublimeWebInspector/

编辑

要寻找的东西:插件系统,系统突出显示,linting,自动完成。如果您现在使用的是支持插件的编辑器,最好的办法是坚持使用它并设置linting和语法高亮。如果您正在寻找一些建议,以下所有内容都是可靠的选择。

  • Sublime Text 2(免费试用)
  • Textmate(商业,30天试用)
  • VIM(免费)
  • Webstorm(商业,30天试用)

工作流程工具:

我建议从像Yeoman或lineman这样的高级工具集开始。他们有些自以为是,但提供了完整的工作流程,可以让您快速完成工作。一旦您习惯使用它,您可以在封面下窥视并根据您的需要进行选择和定制。

  • Yeoman:提供脚手架,包管理,开发服务器,连接和连接;缩小并运行规格

  • Lineman:Dev server,concatenate&缩小,运行规格

  • Grunt:更低级别(由Yeoman和Lineman使用)。与ruby's rake相似

  • VCS:不容忽视,基于VCS的良好命令行至关重要。我推荐Git,再次使用你熟悉的东西开始。

浏览器:

浏览器中的开发工具将为您提供控制台和调试工具。花一些时间研究并真正了解如何使用浏览器中提供的开发工具。它们非常强大。

  • Webkit浏览器(Chrome或Safari):内置开发人员工具(命令选项J)。

  • Firefox + firebug

  • 浏览器测试:强烈推荐使用browserstack进行跨浏览器测试。