miketwais

work up

grunt构建自动化开发环境

作为一个WEB开发者,一定会遇到这些问题:

1.分工合作最后怎么合并代码,包括css,javascript代码。

2.开发完成怎么压缩javascript代码。

3.开发过程中如何保证代码质量和错误提醒?代码飞检?代码走查?

团队开发中都会遇到这些问题,那么问题来了。有什么工具能帮助组织前端开发团队,便于web项目开发管理?

引用别人的话:

1. 你还不知道grunt?那你就out了——jquery和bootstrap等世界顶尖web前端web框架都在用,你没有理由不用。
2. 你还在手动合并css代码,手动压缩javascript代码,一帮人在会议室进行代码走查吗?——grunt可以帮你自动完成这些工作。

grunt基于nodejs,兼容各个操作系统(windows,linux,mac)
grunt——web前端开发的神器,快拿走吧!

 

下面介绍一下基于windows的grunt工具的使用方法:

1.首先安装nodejs,grunt和grunt插件是基于nodejs运行的,先下载安装下,地址:https://nodejs.org/en/

安装完成后可以查看一下nodejs版本: node -v

2.安装grunt-CLI,要想使用grunt,首先必须将grunt-cli安装到全局环境中,使用nodejs的“npm install…”进行安装。(注意,mac os 系统、部分linux系统中,在这句话的前面加上“sudo ”指令。)

回车后,命令行会出现一个转动的小横线,表示正在联网加载。不一会就安装完成了。

下面验证下grunt-cli是否安装成功,输入命令:grunt

出现如下所示效果就表示已经安装成功。

OK.安装成功了下面我们来实践一把,看看grunt到底是啥玩意、怎么玩的?

---------------------------------------------------------------------------------------------------------

1.在电脑的D盘下面建了一个“grunt_test”文件夹,里面建了三个空文件夹、两个空文档,名称如下图。(注意 Gruntfile.js 文件的首字母大写!)

Package.json的内容我们写成如下格式:

很明显,我们把这个网站或系统的名称、版本写了一下。最后一个devDependencies是开发依赖项,即我们现在这个系统,将会依赖于哪些工具来开发。现在代码一行都没有写,就先写一个空对象。后面会慢慢把它填充起来。

2.安装构建工具grunt.Grunt没有具体的作用,但是它能把有具体作用的一个一个插件组合起来,形成一个整体效应。例如,你需要检查js语法错误,然后再去压缩js代码。如果这两步你都去手动操作,会耗费很多成本。Grunt就能让你省去这些手动操作的成本。注意,这里安装grunt不再是全局安装了,需要你在控制台进入到网站或系统的具体目录下。这里我们进入 D:\grunt_test 目录下。然后输入以下命令:

npm install grunt --save-dev

注意:--save-dev的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项。看到"开发依赖项",是不是觉得有些眼熟?上文在配置package.json时,其中的devDependencies中就会存储开发依赖项。

安装成功后会显示下图:

现在打开package.json看看,那里的devDependencies变化:

然后看看目录有什么变化:我这里多了一个node_modules文件夹,其中有一个grunt文件夹,再其中有若干文档。这里就是存储grunt源文件的地方。

下面试试grunt能否运行:进入到d:/grunt_test输入grunt命令,出现如下效果:

出现这个效果说明grunt已经成功安装了。但是还有warning 需要我们继续做一些配置修改。

3.配置Gruntfile.js文件

  我们先把Gruntfile.js配置成如下格式:

  

再次运行grunt命令会发现不报错了:

另外请注意Gruntfile.js中的一句话:pkg:grunt.file.readJSON('package.json')。这句话是在Gruntfile.js中获取package.json中的内容。在上文配置package.json时我们说过:package.json中的内容不光是用来占位置的,还可以在其他地方获取。这里不是已经获取了package.json内容了吗?

关于如何获取,会在下面的插件使用中进行介绍。

4.关于grunt插件。

grunt插件很多,需要插件可以到 http://www.gruntjs.net/plugins上去查看使用方法。

介绍几个常用的插件:

  • Contrib-jshint——javascript语法错误检查;
  • Contrib-watch——实时监控文件变化、调用相应的任务重新执行;
  • Contrib-clean——清空文件、文件夹;
  • Contrib-uglify——压缩javascript代码
  • Contrib-copy——复制文件、文件夹
  • Contrib-concat——合并多个文件的代码到一个文件中
  • karma——前端自动化测试工具

grunt集全世界web前端开发的智慧于一身,比你想想的更加强大,它的插件库能应对你在web前端开发遇到的任何事情。

这里我们介绍一个插件的使用方法,其他插件的安装方法都差不多,具体可以问下度娘~~~

 

-------uglify插件使用方法(压缩javascript代码)---------

Uglify插件的功能就是压缩javascript代码。压缩是前端开发性能优化的一个方法,压缩后减小了网络传输量和带宽占用,这样可以减小了服务器的处理的压力。

装uglify插件的方式,和安装grunt是一样的。输入如下命令:

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

安装完成之后,你会看到package.json中“devDependencies”节点的变化,以及“node_modules”文件夹里的变化。

我们要使用uglify来压缩javascript代码,当然得创建一个js文件来做实验。我们在现有的src文件夹中新建一个test.js,并随便写一些代码。

下面需要进行配置。要压缩谁?往哪里压缩?这些都需要配置,在Gruntfile.js中配置。

首先,在grunt.initConfig方法中配置 uglify 的配置参数。

注意:对uglify的配置有两项。

  options中规定允许生成的压缩文件带banner,即在生成的压缩文件第一行加一句话说明。

  build中配置了源文件和目标文件。

另外,在 grunt.initConfig 方法之后,要让grunt去加载这一个插件。如下所示:

最后,需要配置在grunt命令执行时,要不要立即执行uglify插件?如下所示:

注意:后面插件的顺序按照各自需求可以惊醒调整。

经过上述步骤,现在已经完成了所有配置。我们试一试效果:

在控制台中运行grunt命令,得到下面的效果:

最终在build文件夹下生成了压缩文件,打开看一下:

不难发现,运行grunt命令后根据package.json中的name和version生成了文件名。而且,压缩后的代码的banner也是符合Gruntfile.js中的配置要求的。

到这里uglify插件的安装配置过程就结束了。

到这里我发现,grunt集成开发环境真的很赞,适用于前台开发团队。

ps:要想实现搭建一个自动化web前端开发环境我们还需要安装watch插件,应该说是必不可少。它可以检测到了文件变化,然后自动运行你安装的各种插件,执行完毕之后重新进行监听。这样就实现了自动化

posted @ 2016-02-03 15:56  MasonZhang  阅读(379)  评论(0)    收藏  举报