angularjs安装

当前位置:首页>AngularJS>angularjs安装>前端开发环境搭建 Grunt Bower、Requirejs 、 Angular

前端开发环境搭建 Grunt Bower、Requirejs 、 Angular

时间:2015-06-17 11:39来源:网络整理 作者:KKWL 点击:
现在web开发的趋势是前后端分离。前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互。 如果后端采用node.js,则前后端可以使用同一种语言,共享某些可

现在web开发的趋势是前后端分离。前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互。

如果后端采用node.js,则前后端可以使用同一种语言,共享某些可重用的Js代码,并共享构建工具。但很多时候我们可能采用别的语言,如ruby/java/scala等,此时前后端代码基本上是完全独立的。虽然大家都在同一个项目中,但可以分成互相独立的两块,并且前后端通常使用不同的构建工具。

比如当后端使用Scala时,我们会使用sbt进行项目构建,对scala代码进行编译、测试、打包等。它的专长是处理与scala相关的任务,但对于前端的支持比较弱。前端一些常见的任务,如js库的下载和管理、css文件的转换、js文件合并压缩、js测试的执行等,很难在sbt中找到好用的插件,而利用js世界里的工具来做反而更加方便一些。

我们项目组这几天正在讨论是否在项目中引入一些前端框架,还是直接用原生Javascript写。经过反复讨论和调研,最终决定引入AngularJs。但AngularJs的引入并不是单一的任务,因为我们还需要考虑前端代码的测试、依赖管理等,都需要有相应的工具支持,所以最后引入了这么一整套工具:

  • Grunt – Js任务管理工具,通过各种插件对项目进行各种操作,比如文件转换、运行测试、打包部署等。相当于java里的ant/maven/gradle,ruby中的rack,scala中的sbt。
  • Bower – Js库依赖管理工具。当你需要jquery时,不需要手动下载,只需要执行 bower install jquery
  • RequireJs – Js库加载管理,及模块化支持。可以按需及并行加载js库,可以把我们的代码以模块化的方式组织。
  • AngularJs – Js前端框架,支持依赖注入,双向绑定等我认为很重要的功能
  • 这套东西都是比较基础且使用比较广泛的。一般一旦在项目中引入前端框架,或者需要写比较多的Js代码时,我们都会采用它们,所以很有必要学习并掌握它们。

    各工具都相当的独立

    在开始前,需要先提示一下,在javascript的世界里,很多东西都是由社区提供的,所以每一种工具都相当独立。比如,很多工具都有着自己独立的配置文件,自己的命令行参数,有时候还需要有一些额外的插件把两个工具结合起来。

    所以下面将会有很多比较琐碎的命令,我们需要一一了解。不过好在我们一旦了解了,下次就可以使用已经配置好的文件,通过几条命令将把有的东西都准备好,很方便。

    安装nodejs

    在Mac中,我们可以使用brew来安装。在其它系统下,请使用相应的工具或直接到官网下载。

    brew install node

    Nodejs可以让我们在服务器端使用javascript编程,它是很多js工具的基础。如果你已经安装,请确保使用最新版本:

    brew upgrade node

    查看版本:

    node -v

    我这里显示:

    v0.10.28 npm

    Npm是node官方提供的包依赖管理工具。我们下面使用的grunt等,都是以插件形式下载安装的。

    当我们安装好nodejs后, npm 就自动可用了。

    查看版本:

    npm -v

    我这里显示:

    2.0.0-alpha-5 创建项目目录

    下面我们从零开始,首先在任意位置新建一个目录作为我们的项目根目录,比如:

    mkdir ~/myproject

    然后进入该目录:

    cd ~/myproject

    后面的命令都将在项目根目录下操作。

    为npm创建package.json

    首先我们需要为npm提供一个 package.json ,告诉它我们的项目信息,特别是项目中将会使用的插件。我们不需要手动创建,因为可以直接调用以下命令:

    npm init

    它会问我们一些问题,我们可以按需回答,也可以全部使用默认值,反正以后可以改起来也很容易。

    最后将会产生如下的 package.json 文件:

    { "name": "grunt-bower-angular-demo", "version": "0.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/freewind/grunt-bower-angular-demo.git" }, "author": "", "license": "BSD", "bugs": { "url": "https://github.com/freewind/grunt-bower-angular-demo/issues" } }
    ------分隔线----------------------------