Grunt入门教程之(一)
来源:互联网 发布:淘宝 人太多被挤爆了 编辑:程序博客网 时间:2024/05/02 09:15
Grunt入门教程之一
grunt是一个强大的自动化构建工具,它能自动的执行你自定义的任务,帮助你编译、压缩、单元测试等。它可以极大的减轻作为程序员的工作量。一切无聊枯燥且重复的工作就交给grunt来完成吧!
grunt中有非常多的插件,有官方的可以直接使用,如果你觉得这还不够,你可以自己亲自写一个插件,将其发布到npm上。
常用的grunt插件有:
Less
handlebars
jade
JS Hint
watch
下面我们就以less为例,来看看如何使用grunt来把less编译为css并压缩。
首先我们要通过npm安装grunt命令行(CLI)到全局变量中
npm install -g grunt-cli
CLI安装完成后,就可以建一个grunt项目来跑了。
新建一个grunt文件夹,在grunt中新建package.json和Gruntfile.js文件。
package.json为配置信息,里面可以配置需要导入的插件和一些变量或常量。
{ "name": "XXX", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-jshint": "~0.6.3", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-uglify": "*", "grunt-contrib-less": "*", "grunt-contrib-concat":"*", "grunt-contrib-yuidoc": "*", "grunt-contrib-cssmin":"*", "grunt-contrib-watch":"*" } }
Gruntfile.js为任务的配置,可以理解为程序的主入口。
module.exports = function(grunt) { grunt.initConfig({ less: { compile: { files: { 'a.less' } } }, cssmin:{ minify: { expand: true, src: ['a.css'], dest: '', ext: '.min.css' } }, watch: { css: { files: ['/*.less'], tasks: ['less','cssmin'] } }, }); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.registerTask('default', ['less',"cssmin","watch"]); };
在当前目录下,命令行输入 grunt 就能开始执行 less,cssmin,watch任务。
下面讲解一下上面的代码。
首先我们配置了less插件,并指定将a.less编译成a.css并保存在当前的目录,接着是配置了cssmin插件,将上一步生成的a.css文件进行压缩,生成a.min.css文件。我们需要的就是最终生成的那个a.min.css文件。
下面来看一下神奇的watch插件。我们在项目开发中,不可能每修改一次a.less,都手动去执行命令grunt。所以我们需要一个监听文件改变的东东,它就是watch。我们在配置中,用watch插件监听当前目录下,所有的less文件,只要有改动,就会再次执行 less 和 cssmin插件。是不是很方便?
上面是使用grunt最简单的一个例子,后面的文章会对grunt的更多特性以及插件做更详细的讲解。
文章作者:forevercjl
文章原文链接:http://blog.csdn.net/forevercjl/article/details/38590305
- Grunt入门教程之(一)
- Grunt入门教程之(三)
- Grunt 入门教程一:开始使用Grunt(翻译自官方教程)
- Grunt 入门教程一:开始使用Grunt(翻译自官方教程)
- Grunt入门教程
- Grunt入门教程之二 —— concat插件
- grunt 入门教程五:完整示例(完结篇)
- 语音识别之portaudio入门教程(一)
- WebPack详细入门教程(一)之简介
- Grunt 入门教程二:配置任务
- Grunt 入门教程三:GruntFile 例子
- Grunt 入门教程四:创建任务
- grunt学习笔记一:grunt安装
- grunt 笔记一
- CCV入门教程(一)
- WPF 入门教程(一)
- css入门教程(一)
- Lucene入门教程(一)
- 棋盘游戏(二分图)
- 从零开始学习Hadoop
- ftp 21端口被占解决办法
- Java正则表达式详解
- 很特别的一个动态规划入门教程
- Grunt入门教程之(一)
- 单链表反转
- linux查看端口被谁占用
- 对activity设置全屏无标题高亮显示
- 使用 Bootstrap 的 11 大理由
- 花瓶与仙人掌价值观你怎么看?
- linux JAVA环境变量
- java定时器
- js中this的使用