Node.js工具集 bower,yeoman,grunt

最近看到javacodegeeks上的一篇文章Node, Grunt, Bower and Yeoman – A Modern web dev’s Toolkit, 文章介绍了一个web开发的工具集。 正好我今年以来也在使用这套工具集开发Web应用程序,也一直想写一篇文章总结一下这套开发套件的用法,借此机会,参考这篇文章,总结一下我使用这套工具的经验。
在的文章中,作者使用angular框架开发,而我,遵循公司的选择,使用Ember.js作为我的开发框架。同时使用Compass进行SCSS的编译。这些地方会有所不同。

Node

像Node.js, 已经不算新鲜的玩意了。Node.js第一个版本于2009年发布,现在有很多的公司也采用Node作为后端开发工具。 至于Node.js是否代表先进的开发方向, 目前还有很大的争论。但是基于Node.js的生态圈已经形成,一大波的优秀的的Node.js 模块已经涌现。但是像Grunt, Bower等工具,也有不少的朋友并不了解。所以这篇文章特别介绍一下它们。

Node.js 是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。目的是为了提供撰写可扩展网络程序,如Web服务。第一个版本由Ryan Dahl于2009年发布,后来,Joyent雇用了Dahl,并协助发展Node.js。其他编程语言的类似开发环境,包含Twisted于Python,Perl Object Environment于Perl,libevent于C,和EventMachine于Ruby。与一般JavaScript不同的地方,Node.js并不是在Web浏览器上运行,而是一种在服务器上运行的Javascript服务端JavaScript。或者你可以使用node-webkit创建桌面应用程序。

Node.js社区创建了许许多多的优秀的node module,这些module发布在npmjs.org。 目前已经有10万左右形形色色的模块可供使用。社区的力量不容小觑。这篇文档并不会介绍使用Node.js去开发服务器程序, 而是利用Node.js 这些模块辅助我们前端程序的开发。 特别是利用npm安装一些流行的模块如Grunt等。

官方网站提供了各种操作系统, 32位/64位机器上的安装程序。 还提供了源码。 安装非常的简单。一旦安装成功,你可以通过$ node -v查看Node.js的版本。在安装Node.js的时候,一般会同时将npm也安装上了。 执行npm -v查看npm的版本。通过npm可以安装所需的Node.js模块, 如:


1

npm install grunt

npm install可以从npmjs.org安装最新的或者特定的模块, 也可以从本地或者服务器如github上安装。 安装的模块放在了当前的node_modules文件夹中。对于常用的模块,如grunt,你可以把它放在全局的文件夹中。 这样其它的项目就不用安装这个依赖了。


1

npm install grunt -g

最好的方式是创建一个package.json文件。在这个文件中管理你的项目需要的Node.js模块。执行npm init根据提示回答后会自动创建一个package.json。如果你想加入一个模块, 如grunt。执行npm install grunt --save会自动更新package.json文件。


1

2

3

4

5

6


{

...

"devDependencies": {

"grunt": "^0.4.5"

}

}

而执行npm install grunt --save-dev也会自动更新package.json文件。它会将模块加到devDependencies中。在devDependencies只在开发的时候用,模块不会部署到发布的应用程序中。命令npm uninstall --save grunt是卸载模块。npm包管理工具使用Semantic Versioning。 这个程序版本规范非常的强大, 通过一个字符串可以提供非常丰富的语义。你可以到其网站好好阅读一下。

1.3.5~1.3.51.3.x^1.3.5latest*都是合法的版本号。

npm命令行工具的参考手册可以看这里

Bower

前面讲到,npm是Node.js的包管理工具。 在Web开发中,我们经常会用到bootstrap, JQuery这些CSS, 前端javascript框架。 如何在我们的项目中管理这些框架? 包括引入,检查依赖, 更新,删除?这将会用到另外一个很好的工具: Bower

Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.

使用npm安装bower:


1

npm install -g bower

通过命令bower install <package>安装依赖:


1

2

3

4

5

6

7

8


# registered package

bower install jquery

# GitHub shorthand

bower install desandro/masonry

# Git endpoint

bower install git://github.com/user/package.git

# URL

bower install http://example.com/script.js

你可以通过bower init初始化一个bower.json文件来管理依赖。你可以通过通过根目录的.bowerrc来配置bower。这里有一篇关于bower的好的文章

stackoverflow有一篇关于bower和npm的对比。

Yeoman

Yeoman是一个脚手架工具,可以方便的为你产生一个初始项目, 标准的文件夹布局, 标准的包依赖, 初始的页面例子。 Yeoman提供乐意一些generators, 用来生成不同的项目。
这些generators有些由官方提供,有些由社区提供。

The web’s scaffolding tool for modern webapps

它有什么好处呢?

  • 可以快速创建一个项目。正所谓万事开头难, yemoman帮你度难关。 Yemoman帮你设置好了项目, 相关的文件,相应的依赖,这些事情本来会耗费你相当大的精力和时间
  • 你可以冒充一个专家,尽管你可能并不全部熟悉这些全部工具。 当然,你对自己很有信心,也可以根据需要调整yeoman生成的东西。 这是肯定的。 yeoman只是给你提供了最基础的架构。
  • 你可以学习到很多新知识。 笔者深有体会。 基本上讲,我是一个后端开发工程师, 前端并不是我的强项。 但是yeoman帮我了解了很多的东西,如Scss等。

yeoman有个中文社区

安装yeoman很简单,利用前面的npm工具。


1

npm install -g yo

选择一个generator, 如果你想基于angular,就用npm install -g generator-angular, 如果你想用Ember,就用


1

2

3

4

5


npm install -g generator-ember

mkdir myemberapp && cd myemberapp(The directory‘s name is your application‘s name)

yo ember

npm install -g grunt-mocha

grunt serve

官方文档提供了详细的介绍

Grunt

Grunt是为Javascript项目提供的一个基于任务的命令行构建工具。 类似Java业界的Ant工具一样。Grunt运行在Node.js平台之上, 通过npm安装。 它包含两个组件: grunt-cligrunt

安装很简单:


1

2


npm install -g grunt-cli

npm install -g grunt

你需要提供一个Gruntfile.js文件,就像Ant需要build.xml文件一样。初始文件很简单:


1

2

3


module.exports = function(grunt) {

// Do grunt-related things in here

};

Grunt通过grunt参数暴露了它的方法和属性。Grunt有非常多的模块。这些模块可以通过npm进行安装。 正常情况下它们的名字都会以grunt-为前缀。 官方提供的模块的前缀是grunt-contrib, 如grunt-contrib-uglify


1

npm install --save-dev grunt-contrib-uglify

我越来越感觉这玩意特别像Apache Ant了;国内有一个很好的Grunt中文网站,可以更方便的了解和学习Grunt。

Compass

当使用yo 生成一个Ember的项目时, 需要使用compass来编译scss文件。 项目使用scss作为css框架。
你可以到其网站上了解更多的内容。 基本上Scss和less最流行的两大CSS处理框架。

所以你需要安装Ruby。 同时会把gem安装上。 gem是Ruby的包管理工具, 就像npm之于node.js。
然后安装compass:


1

2


gem update --system

gem install compass

这样你就能正常编译你的项目了。这里有一个根据以上步骤生成的后台管理项目。Ember-Lance

 

时间: 2024-10-06 21:12:08

Node.js工具集 bower,yeoman,grunt的相关文章

Node.js的集群功能以及在Express的配置

Node.js在v0.6.0版本下内置了集群功能,作为cluster模块,用于nodejs的多核处理,也比较容易通过脚本实现一个负载均衡的集群. 脚本参考了其他人的材料,建立一个server.js(因为虚拟机只有1核,为模拟多线程,所以采用numCPUs+4) var cluster = require('cluster'); var http = require('http'); var numCPUs = require('os').cpus().length; if (cluster.is

js原码工具集

/* 原生js工具集 */ arr是否包含obj function contains1(arr, obj) { var i = arr.length; while (i--) { if (arr[i] === obj) { return true; } } return false; } 获取两点经纬度距离;返回单位为m function getDistance(lat1, lng1, lat2, lng2) { var radLat1 = lat1 * Math.PI / 180.0; var

使用Backbone.js, ExpressJS, node.js, MongoDB的web应用样板工程

这是web应用的一个完整的样板工程,用到了Backbone.js & Marionette, node.js & ExpressJS,MongoDB & Moogoose, Handlebars, Grunt.js, Bower和Browserify! 我建立了一个超级基础的单页面应用程序(SPA),就是一个简单的通讯录管理器, 但麻雀虽小,五脏俱全.我写这篇文章的目的是介绍一下这个应用所用到的整个技术栈:后端,数据,前端,工具和测试.主要包括下面这些技术: 后端: node.js

Node.js安全清单

前言 安全性,总是一个不可忽视的问题.许多人都承认这点,但是却很少有人真的认真地对待它.所以我们列出了这个清单,让你在将你的应用部署到生产环境来给千万用户使用之前,做一个安全检查. 以下列出的安全项,大多都具有普适性,适用于除了Node.js外的各种语言和框架.但是,其中也包含一些用Node.js写的小工具. 配置管理 安全性相关的HTTP头 以下是一些安全性相关的HTTP头,你的站点应该设置它们: Strict-Transport-Security:强制使用安全连接(SSL/TLS之上的HTT

使用electron构建跨平台Node.js桌面应用

最近,把团队内经常使用的一个基于Node.js制作的小工具给做成了可视化操作的桌面软件,使用的是electron,这里简单分享一下使用electron的一些经验和心得. 一.如何使用electron把基本的开发环境给跑起来? 我是这么处理的,electron官方提供了一个名为"electron-quick-start"的示例项目,地址为:https://github.com/electron/electron-quick-start 然后把相关资源给弄下来,如果你是下载Zip包解压的,

Ansible 部署 Node.js

目录 1.1        添加额外的源 1.2        部署一个Node.js app 1.3        运行一个Node.js app 1.4        Node.js app服务器总结. 下面我们将要在我们的服务器上配置Nodejs,启动一个简单的nodejs实例,这个服务器有很简单的架构. 开始了,首先创建一个playbook文件,我们尽量让它保持简单. --- - hosts: all   tasks: 定义一些运行这个playbook的主机,然后下面列出一系列的task

使用electron构建跨平台Node.js桌面应用经验分享

by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=6154 本文可全文转载,但需得到原作者书面许可,同时保留原作者和出处,摘要引流则随意. 最近,把团队内经常使用的一个基于Node.js制作的小工具给做成了可视化操作的桌面软件,使用的是electron,这里简单分享一下使用electron的一些经验和心得. 一.如何使用electron把基本的开发环境给跑起来? 我是这么处理的,electron官方提供了一个名为"electron

Node.js 教程

Node.js 教程nodejs简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.谁适合阅读本教程?如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.No

[译]How to Install Node.js on Ubuntu 14.04 如何在ubuntu14.04上安装node.js

**原文链接为** [http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/](http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/) **由作者Jacob Nicholson 发表于October 27, 2015** **在此对作者表示感谢** Node.js作为一个基于JavaScript的开发平台,正变得越来越流行.许多开发人员都想构建通过