Grunt快速上手

2014年9月18日 · 104 字 · 1 分钟

为什么要使用Grunt?

一句话:自动化。对于需要反复重复的任务,例如压缩(minification)、编译、单元测试、linting等,自动化工具可以减轻你的劳动,简化你的工作。当你正确配置好了任务,任务运行器就会自动帮你或你的小组完成大部分无聊的工作。

怎么使用Grunt?

1.grunt是基于nodejs的,所以请先安装nodejs和npm安装grunt
2.新版本的grunt安装需要两步,终端执行

npm install grunt-cli -g

3.进入项目目录,终端执行

npm install grunt --save-dev

4.安装常用插件

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

5.项目目录

--dev
    |--js
        |-- jquery.js
        |-- main.js
    |--css
        |-- library.css
        |-- main.css

一个很简单的JS,CSS目录,很关键的任务在于如何定义Gruntfile.js文件(请在项目根目录下创建Gruntfile.js,大小写不能错)
6.Gruntfile.js

module.exports = function(grunt) {
    grunt.initConfig({
        cssmin: {
            site: {
                files: {
                    'build/css/site.css': ['dev/css/library.css', 'dev/css/main.css']
                }
            },
        },
        uglify: {
            site: {
                src: ['dev/js/jquery.js', 'dev/js/main.js'],
                dest: 'build/js/site.js'
            },

        },
        watch: {
            site: {
                files: ['dev/js/**.*', 'dev/css/**.*'],
                tasks: ['uglify:site', 'cssmin:site']
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('site', ['watch:site']);
};

cssmin:

site为一个子任务

build/css/site.css 为合并压缩之后的css存放路径,该参数后面的数组为原始的css文件路径

uglify:

site为一个子任务

src数组为源JS文件

dest为合并压缩之后的js文件存放路径

watch

site为一个子任务

files数组为监听哪些文件的变化

tasks数组为如果文件变化则执行什么任务

grunt.loadNpmTasks 加载模块

grunt.registerTask 注册新任务

在项目目录下打开CMD工具,输入

grunt site

即开始执行监听,此时修改dev/js/main.js或者dev/css/main.css都会触发相应的事件。

结语

从此以后再也不用进行重复的压缩合并…etc等一些重复而乏味的工作了,交给grunt吧!