前台开发是个非常神奇,充满冒险,且乐趣十足的领域。我们很高兴的看到,团队对前台的认识从 做做网页,PP图,引入几个成型框架 到 前端工程师。
本节中,让我们共同来深入的认识前台开发系统软件与工具,以及他们之间的关系。并最终使用它们来搭建前台的ANGULARJS开发环境。
# git-shell
git相信大家并不陌生,它是我们一直在使用的版本控制工具。在前台中,我们使用GIT,一方面是进行团队的协作开发。另一方面,我们安装完GIT后,可以得到一个git-shell的东西。我们可以在git-shell中运行一些类UNIX命令,成功的实现了命令的跨平台。
# nodejs
node.js是个生态系统,如果我们想详细理解的话,可以认为他是个跑在虚拟机的操作系统。这个操作系统与unix有点类似,我们除了那个命令行,看不到任何的图型界面。
既然node.js是操作系统,那么我们的确是可以这样和windows来对比的:
1.windows
![https://box.kancloud.cn/ec6fa38cdd628f6773fc9769183e2301_720x318.png](https://box.kancloud.cn/ec6fa38cdd628f6773fc9769183e2301_720x318.png)
2.node.js
![https://box.kancloud.cn/3c185657b06990f816186148e6b92ac6_728x320.png](https://box.kancloud.cn/3c185657b06990f816186148e6b92ac6_728x320.png)
和windows安装后,微软自动为我们安装ie浏览器一样。node.js安装后,它为我们自动的安装了一个叫做npm的软件。所以,安装完node.js后,我们得到的是这样一个系统。
![https://box.kancloud.cn/ecc5866696827a7293aacf3403d8ff29_704x198.png](https://box.kancloud.cn/ecc5866696827a7293aacf3403d8ff29_704x198.png)
npm和我们windows中的360软件管家有些类似,在windows中,我们可以使用360软件管家进行软件的安装、卸载、更新;在NODE.JS中,我们同样可以使用npm对运行在node.js中的软件进行安装、卸载、更新。
在我们的前台开发中,所需要的bower grunt-cli yoman 三个主要的需要手动安装的软件,就是通过npm这个软件管家来安装的。
![https://box.kancloud.cn/6bacb3262afda7c6fea9eaf9dcf6fde6_904x236.png](https://box.kancloud.cn/6bacb3262afda7c6fea9eaf9dcf6fde6_904x236.png)
> nodejs官网:[https://nodejs.org/zh-cn/](https://nodejs.org/zh-cn/)
## bower
bower是node.js系统中的包(项目)管理工具,和我们在windows使用GITHUB进行项目管理一样。bower可以自动的为我们下载我们所需要的包。比如jquery, bootstrap等。
安装方法:
`$ npm install -g bower`
> tips,如果你是非windows系统,你可能需要这样使用:`$ sudo npm install -g bower`, sudo可以使用npm拥有更高的权限。
`$`表示以上语句,需要在命令行输入。比如上述语句,我们需要打开命令行(git-shell), 并输入`npm install -g bower`.
> bower官网:[https://bower.io/](https://bower.io/)
## yoman
yoman译为『脚手架』。『脚手架』广泛的应用于建筑领域。
![https://box.kancloud.cn/dc326dd0139c2c4f283c7a76dbb7dd3c_992x450.png](https://box.kancloud.cn/dc326dd0139c2c4f283c7a76dbb7dd3c_992x450.png)
![https://box.kancloud.cn/1de2db96878b7766504686a18a5e7089_814x406.png](https://box.kancloud.cn/1de2db96878b7766504686a18a5e7089_814x406.png)
和它的表面意思一致,yoman是我们前台开发的脚手架。它为我们的开发做了有效的支撑。它可以为我们自动的生成目录结构,HTML,CSS,JS示例代码。指明我们在开发过程所需依赖的node.js软件及第三方包。是yoman,让我们与世界大牛的距离又近了一层.
安装方法:`$ npm install -g yo`
> yoman 官网: [http://yeoman.io/](http://yeoman.io/)
正如我们看到的一样,yoman为我们提供了Angular, Backbone, React, Polymer等框架的开发支持。支持的总数已经超过了3900个,而且如果你愿意,也可以打造自己的yoman工程。
> yoman: generator-angular > [https://github.com/yeoman/generator-angular](https://github.com/yeoman/generator-angular)
## grunt-cli
grunt是个强大的自动化工作,它有很多个插件支持,可以自动的我们开启一个http服务;监测代码文件是否发生变动;在代码文件发生变动时,自动我们刷新浏览器;自动的我们提示JS语法错误;自动的为我们指出不合规范的JS语法;当我们添加新的包时,自动的为我们添加引用;当我们发布项目时,自动的进行JS文件的合并与压缩。。。grunt能用的,当然远远不止这些。如果别人问我们为什么使用grunt,我们可以回答:自动;如果别人问我们什么是GRUNT,我们还可以回答:自动。grunt已经成为了自动的代名词。
我们接解grunt,就避免不了接触grunt-cli,这两者有什么关系呢?
如果你明白mysql与navicat之间的关系,那么恭喜你,因为grunt与grunt-cli的关系和前者一致。mysql提供服务,navicat调用mysql的服务,实现建表建库数据的CURD等操作;grunt同样提供服务,grunt-cli调用grunt服务,实现了自动化操作。没错,仅此而已。
安装: `$ npm install -g grunt-cli`
grunt中文网:[http://www.gruntjs.net/](http://www.gruntjs.net/), 在此,我们要感谢[Bootstrap中文网](http://www.bootcss.com/)为维护gruntjs.net做出的努力。
使用NPM安装完上述3款软件后,我们大体得到了这样的一个node.js操作系统
![https://box.kancloud.cn/6bacb3262afda7c6fea9eaf9dcf6fde6_904x236.png](https://box.kancloud.cn/6bacb3262afda7c6fea9eaf9dcf6fde6_904x236.png)
## 使用yoman构建angularjs开发架构
yoman在官网中,详细的说明了如何使用yoman来构建其它的应用。我们在构建其它应用前,打开官网来进行应用的搜索。
>官网: [http://yeoman.io/generators/](http://yeoman.io/generators/)
我们输入angular,得到如下结果:
![https://box.kancloud.cn/7e14f4a63a2f8e80e4d64c3b4be2b078_611x454.png](https://box.kancloud.cn/7e14f4a63a2f8e80e4d64c3b4be2b078_611x454.png)
我们看到angular前面有个 胡须 的标志,凡是有这种标志的,表示yoman官方出品。没错,官方出品,必属精品。我们就选它。
到这,我们以使用yoman创建angular应用来看看yoman是怎么工作的。
![https://box.kancloud.cn/ad689692de0afb26341d085d130e0f73_1276x412.png](https://box.kancloud.cn/ad689692de0afb26341d085d130e0f73_1276x412.png)
在使用yoman创建angular应用前,我们首先需要使用npm来安装配合yoman工作的generator-angular。有了generator-angular后,我们便可以使用`yo angular`命令来初始化angular项目了。
实际上,我们还可以使用yoman来安装generator-angular。在此,我们保持与官方文档一致,使用第一种,即使用npm来安装.
> 官方文档: [https://github.com/yeoman/generator-angular#readme](https://github.com/yeoman/generator-angular#readme)
安装: `npm install -g grunt-cli bower yo generator-karma generator-angular`
执行上述命令后,实际上相当于分别执行了:
npm install -g grunt-cli
npm install -g bower
npm install -g yo
npm install -g generator-karma
npm install -g generator-angular
由于我们在前面已经执行过前面的三行命令,所以在这,我们也可以这样执行:
`npm install -g generator-karma generator-angular`
`generator-karma`是angular的单元测试工具。
## 小试牛刀
我们在打开我们在项目javaee所在的目录,并新建WebApp目录。
执行:`$ yo angular`
```
? Would you like to use Gulp (experimental) instead of Grunt? No
? Would you like to use Sass (with Compass)? No
? Would you like to include Bootstrap? Yes
// 除了最后一个用于手机的不选择外,其它的全部选上吧。
? Which modules would you like to include?
◉ angular-animate.js
◉ angular-aria.js
◉ angular-cookies.js
◉ angular-resource.js
◉ angular-messages.js
◉ angular-route.js
◉ angular-sanitize.js
❯◯ angular-touch.js
...
```
然后,如果你是第一次安装,视网络的不同,你可能会经过漫长的等待。不过,只要安装成功一次,下次就好了。
如果你等上了半小时,还是停留在这个页面:
```
Receiving...
```
那么我想,你是时候启用团队为你准备好的VPN了。
> tips:如果提示我们正在下载什么软件到什么位置的时候,我们是可以使用ctrl+c来中断程序,然后手动去下载安装包,并放入到指定位置后再重新执行yo angular命令的。
如果你恰恰需要这个文件,请找到我们教程对应的github地址,并找到resoucre文件夹中的phantomjs-2.1.1-macosx.zip,复制到上面提示的位置,然后中断程序后重新执行即可。
最后,如果你成功的出现了如下界面:
![https://box.kancloud.cn/e7be48732a8c65b8013ceedd9319c4ee_1348x736.png](https://box.kancloud.cn/e7be48732a8c65b8013ceedd9319c4ee_1348x736.png)
就不要傻等着了,因为已经显示:完成,没有出错。
此时按回车键继续,等待任务执行完毕。
此时,yoman已经为我们创建好了angularjs开发所需要的一切。
下一节,我们来共同学习。如果在yoman的基础上进行开发。
<hr />
问题汇总:
1. 使用yo angular后,自动生成的文件夹并没有安装到当前文件夹。
原因:yoman在生成目录时,会自当前文件夹往上今次查找Gruntfile.js,如果找到了,就会把拥有Gruntfile.js的文件夹做为项目文件夹。
解决办法:1.如果在此文件夹中的父级文件夹中,已经有了yoman项目,那么是无法再其子文件夹中再建立yoman项目的。所以,一定要不在D,E盘的根目录下建立yoman项目,否则,你的D盘下就只能有一个yoman项目了。2.如果实在有需求,删除父文件夹中的Gruntfile.js吧。
> 官方文档:[https://github.com/yeoman/yeoman/issues/635](https://github.com/yeoman/yeoman/issues/635)
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层