介绍

有非常多可用的工具能够帮助你开发AngularJS 应用,那些非常复杂的框架不在我的讨论范围之中,这也是我開始这系列教程的原因。

在第一部分,我们掌握了AngularJS框架的基本结构,开发了第一应用。这篇博文是为那些刚開始学习的人写到。假设你是一个经验丰富的AngularJS开发人员,你可能对揭秘指令或者AngularJS在创业公司的使用更感兴趣。

在这一部分,我们将把应用的逻辑层放在一边,而是去学习怎样组织正确的AngularJS项目。包含:脚手架、依赖管理、准备測试(包含单元測试和端到端測试)。我们用来开发AngularJS的工具有:Yeoman, Grunt, and Bower。以下我们将又一次看一下写代码和用 Karma 測试的过程。

3Karma, Jasmine, Grunt, Bower, Yeoman…这些工具是什么?



如果你使用JavaScript来工作,有非常大的可能性你已经知道了他们当中的一些工具,即使你是刚接触Angular。可是为了确保一个共同的基准,我将不会使用不论什么如果。让我们简单地回想一下这些技术和他们的用途吧。

- Karma(之前的名字是Testacular),是Google的JavaScript測试器,所以它也是測试Angular的自然选择。另外也同意你在真实的浏览器执行你的測试(包含手机/平板电脑的浏览器),它也支持測试无关的框架。这意味着你能够使用它结合其它框架,比方 Jasmine, Mocha, 或者 QUnit。

- Jasmine也是我们測试框架的一个选择,至少在这里。假设你以前用它工作过,你会发现它的语法和Rspec很相近。假设没有也不用操心,我们将在本教程里具体地解说。

- Grunt是一个測试器,能够帮助我们自己主动处理一些反复的任务,比方:压缩、编译、測试和建立一个简单的AngularJS应用。

- Bower是一个包管理器,可以帮助你找到并安装你应用所依赖的包,比方CSS框架,JavaScript库,等等。它执行在git上,十分像Rails,避免了须要手动下载和更新的依赖关系。

- Yeoman是一个工具集,包括3个核心组件:Grunt,Bower,和脚手架工具Yo。Yo在generators(也是脚手架模版)的帮助下生产代码样板文件,为你的项目自己主动配置Grunt和Bower。你能够差点儿在不论什么JavaScript框架(比方:Angular,Backbone,Ember等)中发现generators,可是由于我们如今讲Angular,我们将使用generator-angular项目。

所以,我们从这里開始

非常好,我们须要做的第一件事是安装我们须要的工具

1. 假设你没有安装git,node.js和npm,那么要先安装它们。

2. 然后,我们将进入命令行输入以下的命令来安装Yeomen工具。

npm install -g yo grunt-cli bower

噢,不要忘了,我们将使用AngularJS generator。所以你也须要安装它。

npm install -g generator-angular

好的如今我们准备好了。

生成我们的AngularJS应用

上一次,我们从angular-seed项目手动地复制了我们的基本文件。这一次,我们将使用yo(结合generator-angular)来为我们做这些。

now,我们须要做的就是创建我们新项目的文件,浏览并执行

yo angular

我们将展示一些选择项,比方是否包括Bootstrap和Compass,此时,让我们对Compass说no,对Bootstrap说yes。然后,当提示包括哪一个模块的时候(resource, cookies, sanitize and route),我们将仅仅选择

angular-route.js

我们项目的基本文件应该会在一分钟之内创建出来。集成了Karma和一些预配置的。

提示:必须牢记我们要限制这里的模块。

当你正在做自己的一个项目时,使用哪些模块将取决于你自己。

如今,因为我们正在使用Jasmine,让我们把它的适配器增加到我们的项目

npm install karma-jasmine --save-dev

在这个样例中,我们希望測试可以在浏览器里运行。让我们再次加入

npm install karma-chrome-launcher --save-dev

ok,假设我们所做的每一件事都是正确的,我们的项目文件结构应该是这种:

我们应用代码应该在 app/ 这个文件夹下。 test/ 这个文件夹当然是測试文件。在根文件夹下我们看到那些是项目的配置文件。他们中的每个都有非常多须要学习的,可是如今我们仅仅是坚持了默认配置。那么让我们执行一次我们的项目吧,我们能够用以下的命令执行

grunt serve

瞧,我们的app如今应该跳出在我们面前了。

上一篇译文在这里:http://segmentfault.com/blog/news/1190000000347412

原文链接:http://www.toptal.com/angular-js/your-first-angularjs-app-part-2-scaffolding-building-and-testing

你的第一个AngularJS应用--教程二:基架、建立和測试的工具的更多相关文章

  1. AngularJS 基础教程二:

    5.过滤器 过滤器的主要功能是格式化数据 可以使用Angular提供的过滤器,也可以自定义过滤器 Angular过滤器: currency(货币).date(日期).filter(子串匹配).json ...

  2. DHTMLX 前端框架 建立你的一个应用程序教程(二)--设置布局

    Layout控件的演示 Dhtmlx有很多的组建来组织网页的建设, 这篇主要介绍dhtmlxLayout . 下面图片中 布局将各个组件(1.Menu 2.Toolbar 3.Grid 4.Form ...

  3. PCI OP WiFi 測试(二):PCI对OP的要求

    PCI OP WiFi 測试(二):PCI对OP的要求 每次看PCI的文档.都一头雾水,本来就非常抽象.看英文就感觉更抽象.泛泛而谈的要求,看一次忘一次.仅仅好翻译成中文.没事就看看,知道指导思想. ...

  4. 菜鸟学Java(二十一)——怎样更好的进行单元測试——JUnit

    測试在软件生命周期中的重要性,不用我多说想必大家也都很清楚.软件測试有许多分类,从測试的方法上可分为:黑盒測试.白盒測试.静态測试.动态測试等:从软件开发的过程分为:单元測试.集成測试.确认測试.验收 ...

  5. 谈谈单元測试之(二):測试工具 JUnit 3

    前言 上一篇文章<为什么要进行烦人的单元測试?>讨论了一下现阶段软件开发中,程序猿们測试情况的现状.这篇文章中,我打算介绍一下单元測试的工具(插件).而且推荐大家以后在开发中,真正的用上单 ...

  6. 【转载】图灵AngularJS入门教程

    摘自图灵的AngularJS入门教程:http://www.ituring.com.cn/article/13471 感觉非常不错,所以推荐到首页一下! (一)Hello World! 开始学习Ang ...

  7. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  8. C#微信公众号开发系列教程二(新手接入指南)

    http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...

  9. 无废话ExtJs 入门教程二十[数据交互:AJAX]

    无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...

随机推荐

  1. ACdream 1148(莫比乌斯反演+分块)

    传送门:GCD SUM 题意:给出N,M执行如下程序:long long  ans = 0,ansx = 0,ansy = 0;for(int i = 1; i <= N; i ++)   fo ...

  2. sqlit使用要点之引入libsqlite3.dylib

    怎样引入libsqlite3.dylib? 在.h 或 .cpp文件里包括相应的头文件

  3. asp.net mvc4中自定义404页面

    原文地址:http://www.chuchur.com/asp-net-mvc4-404/ 定义404 方法当然有很多种.不同的方法所展现的形式也不一样,用户所体验也不一样.以下提供2两种 方法一: ...

  4. Android四个多线程分析:MessageQueue实现

    Android四个多线程分析:MessageQueue的实现 罗朝辉 (http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 在前面两篇文章<Android多线 ...

  5. 局部敏感哈希-Locality Sensitive Hashing

    局部敏感哈希 转载请注明http://blog.csdn.net/stdcoutzyx/article/details/44456679 在检索技术中,索引一直须要研究的核心技术.当下,索引技术主要分 ...

  6. for循环中一个不容小觑的问题

    for(int i=1;i<=100;i++) 作为程序猿,我们很喜欢使用这种for循环. 可是,当中隐含着一个重要的问题. 过多的编程经历可能使我们的思维产生了一些误解,在上面的for循环中, ...

  7. A Game of Thrones(0) - PROLOGUE

    "We should start back", Gared urged as the woods began to grow dark around them. "The ...

  8. Jquery中toggleClass的两种用法

    css样式: <style type="text/css"> .bgc{ background-color:#F00; color: #FFF} </style& ...

  9. SQLiteDatabase和Contentprovider

    SQLiteDatabase和Contentprovider这两个数据库,我一般是用前面一个,喜欢它的操作数据库的语句,简单明了,可惜有时遇到数据库同步的问题,有时我们需要在一个数据库下建立多个表,多 ...

  10. 获取编译学习笔记 (六)—— si、di,双环

    疯狂暑期学习  汇编入门学习笔记 (六)-- si.di,双重循环 參考: <汇编语言> 王爽 第7章 1. and和or指令,与[bx+idata] and和or.就不多说了. [bx+ ...