zoukankan      html  css  js  c++  java
  • 前端见微知著流程篇:前端开发流程总结

    在之前的章节中我们讲解了前端的一些基本知识和工具的使用,包括Javascript,Angularjs,Grunt和Bower。但是在实际开发中,如何利用这些工具来进行开发呢?这节我们就主要来讲解如何利用这些工具来进行前端开发。

    本篇文章参考:LET'S SCAFFOLD A WEB APP WITH YEOMAN

    1.用Yeoman来建立简单的APP项目

    在这篇文章中,我们将会建立如下的一个简单的APP。在这个APP中,你可以通过拖拽的方式来添加待办事件,删除待办事件,管理待办事件。

    image

    首先,在这里,我们需要明白一个Yeoman是干什么的。

    Yeoman是Google提供的一个脚手架项目,其目的旨在于利用简单的命令来管理前端开发的流程。你可以用Yeoman方便的来预览web项目,查看项目文件,编译sass文件等等。它同时也能够进行单元测试,压缩JS和图片等等。

    既然Yeoman被称为脚手架,那么它一般不会单独使用,而是和Grunt,Bower,Karma等前端工具结合使用。我们分别来一一介绍一下:

    yo:脚手架工具,用于提供各类的框架和生成器,以便于你能够更快的来搭建和开发你的web项目。

    grunt:前端自动化工具,经常被用于构建,发布和测试项目。

    gulp:和Grunt类似的工具,但是更为简单的一种前端自动化工具。

    bower:用于进行类库依赖管理的工具,使用它,将会使您的类库管理完全自动化。

    介绍完这几个工具,那么我们就来安装一个Yeoman generator。

    2.安装前的准备工作

    在安装Yeoman前,你需要确保以下工具已经被安装到你的电脑中。

        Node.js v0.10.x版本及以上

        npm v2.1.0版本及以上

        git

    当这些工具都安装完毕以后,你可以使用如下的命令来测试是否安装成功:

    image

    如果你能看到如上的信息,那么说明你的安装就是成功的。

    如果你现在的npm版本很老了,想升级到最新版本,你可以使用如下的命令来进行升级:

    image

    3.安装Yeoman工具

    我们用如下的命令,就可以快速的将所需要的工具都安装完毕,这里我们所需要的工具有:yo grunt bower,所以这里我们来进行安装。安装开始的时候,有一个横线一直在转圈,等三五分钟以后,就可以自动安装完毕了。我们看看安装截图:

    image

    从图中我们看到,所有的组件都被安装到了 C:Userschaoyang.shiAppDataRoaming 文件夹下,我们需要找到这个文件夹,然后右击文件夹的安全选项,添加一个EveryOne用户来确保给予了充足的权限,这个是必须要做的,至少在我的机器上,因为这个没有赋予所有权限,导致部分命令出错。

    安装完毕之后我们就可以使用如下的命令来检验安装之后的版本了:

    image

    4.安装AngularJS generator

    你可以直接npm命令来进行安装:

    image

    如上图所示,安装完毕就是这个样子的。

    前期准备工作都做好以后,下面我们将开始真正的项目创建了。

    5,创建项目

    首先在你的电脑上找个地方创建一个webdemo的文件夹,我这里为了演示,我放到了E盘的根目录下。

    然后运行yo命令,来创建一个示例项目。

    image

    这里首先提示我们是不是需要安装Angular,这里我直接回车,表明确认安装操作。确认之后弹出来询问,问我需不需要用到Sass,这里我们用不到,所以这里我输入n并回车:

    image

    然后后面会继续问我是否使用bootstrap,这里我们输入Y。等全部完毕后,我们就会看到屏幕在一直滚动输出安装信息了:

    image

    等到屏幕滚动到如下的位置的时候,就不会滚动了:

    image

    这时候我们只要点击一下回车键确认,然后会询问我们是否需要覆盖package.json文件,我们这里输入n就可以了。

    总共需要大概五分钟左右的样子,我们的项目就彻底的建立好了。然后我们用sublimeText打开,就可以清楚的见到项目结构了:

    image

    然后我们打开Http服务器来浏览一番

    (由于在index.html中缺少对BootStrap的引用,所以我这里需要手动加一下:

    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">

    ):

    image

    当服务器启动以后,我们的网站就会自动被打开,然后我们就能看到我们通过yo创建的项目示例了:

    image

    是不是很带感呢?

    接下来,我们将会以这个示例项目为主,一步一步的来打造我们的项目。

    6. 创建一个新的待办事项模板

    首先打开views文件夹下面的main.html模板,删除其他多余内容,保留如下的div标签即可。

    image

    然后打开scripts/controllers/main.js文件,修改其中内容如下:

    image

    修改完毕以后,在前台进行绑定:

    image

    至于上面的ng-repeat,ng-model等语法,可以参见我之前写过的关于AngularJS的相关文章。

    由于这里只是展示了todo集合,我们可以为其添加一个新增todo项目的功能:

    image

    由于是添加操作,所以我们在controller里面添加一个addTodo方法来出发添加任务的操作:

    image

    7.添加新的类库包

    由于这里我们想让当前的todo列表支持拖拽和排序操作,所以这里我们需要引入angular-ui-sortable包和jquery-ui包,我们通过bower来添加,分别执行如下命令即可:

    image

    image

    当然如果你嫌麻烦,你也可以用前面介绍的方法,用双&符号一次性安装。

    安装完毕后,在bower_components文件夹中就多出来angular-ui-sortable文件夹和jquery-ui文件夹。

    然后我们重新运行grunt serve命令,在浏览器页面我们可以看到新的angular-ui-sortable库和jquery-ui库的js文件已经被前台页面自动引用了:

    image

    为了使用Sortable模块,我们还需要在scripts/app.js文件夹中对这个模块进行注入:

    image

    如上图所示,画红线的部分就是我们注入的模块。

    然后再前台,我们需要更改部分html代码以便于实现我们的功能,更改后的html代码如下:

    image

    到此为止,我们就拥有了一个可以进行拖拽的列表显示页面了,运行起来的时候效果其实挺酷的。

    8. 单元测试

    我们先中断网页浏览(ctrl+c),然后再命令行输入grunt test命令,表明启动单元测试。但是在当前的单元测试中,会有很多的warning,我们稍后来fix掉他们,下面我们一步一步的进行操作。

    首先,打开karma.conf.js文件,我们会发现,当我们安装完毕jquery-ui库和angular-ui-sortable库之后,bower会自动往这个文件中添加依赖:

    image

    确认了依赖存在以后,我们打开test/spec/controllers/main.js文件,然后对其进行改造:

    image

    然后打开scripts/controllers/main.js文件,移除掉我们早前添加的3个todo项:

    image

    然后再运行grunt test命令,可以看到如下内容:

    image

    接下来我们将会添加更多有意义的单元测试,来覆盖我们的代码逻辑:

    image

    最后重新利用grunt test跑一遍,可以看到4个单元测试均通过:

    image

    9.生成production项目

    当我们的开发测试都做好以后,我们需要放到线上去,我们可以首先使用grunt命令来编译和优化我们的项目:

    image

    在确定没有任何错误以后,我们使用grunt serve:dist命令来生成我们的项目,同时会启动本地服务器进行项目预览。

    image

    并且在根目录下面会生成一个dist文件夹,其内部的内容就是已经变异优化好的项目文件,其结构是这样的:

    image

    我们可以看到,所有的css和js都已经被合并,而且被压缩过了。

    我们在这里只需要将其放到服务器上即可。

    这个系列终于讲完了。最后这个系列可以说是对开头链接的那篇文章进行的完整翻译,但是加入了我自己的一些内容。这个系列我都是一步一步的亲手敲代码,敲配置等弄出来的,希望以后再遇到前端开发的任务时,能够轻松应对,同时也算是给自己的技能涨涨价吧。

  • 相关阅读:
    spring 整合 shiro框架
    Kafka常见问题及解决方法
    设计模式之解释器模式规则你来定(二十五)
    设计模式之原型模式简单即复杂(二十四)
    设计模式之访问者模式层次操作(二十三)
    设计模式之状态模式IFORNOIF(二十二)
    设计模式之职责链模式永不罢休(二十一)
    设计模式之组合模式透明实用(二十)
    设计模式之享元模式高效复用(十九)
    设计模式之迭代器模式解析学习源码(十八)
  • 原文地址:https://www.cnblogs.com/scy251147/p/4902605.html
Copyright © 2011-2022 走看看