grunt是一个基于nodejs的任务管理, 可以自动化打包, 测试代码, 大概类似Ant吧, 第一次用这种东西
安装: 如果安装过grunt则删除: npm uninstall -g grunt
然后安装grunt-cli: npm install -g grunt-cli
安装这个后会把grunt命令添加到path路径中, 这个只是grunt这个包中grunt命令的代理!我擦,好绕啊, 这时你还没安装grunt呢.运行grunt会报错的!!!
安装grunt有两种办法, 先切换到工作目录, 最简单的是直接npm install grunt --save-dev这个参数是为了添加grunt到package.json的devDependencies中,或者直接编辑package.json文件
这样: {
"name": "my-project-name",
"version": "0.1.0",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-jshint": "~0.1.1",
"grunt-contrib-nodeunit": "~0.1.2"
}
}
然后npm install !!!!!!
还有一种方法是安装grunt-init: npm install -g grunt-init 这玩扔会按照模板初始化一个package.json和一个gruntfile!
gruntfile在3.0以后叫grunt.js不过在windows下可能会有点问题, 所以这里统一用Gruntfile.js!!!!
说了这么一堆废话都是安装的, 那这玩扔到底怎么用呢!!
首先gruntfile的格式是这样的:
所有的grunt代码都写在这里, 函数的第一个参数就是grunt这个东西
module.exports = function(grunt) {
// Do grunt-related things in here
};
然后呢, 配置文件都用这个函数:
grunt.initConfig(参数是json-object);
一般会这样写
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'), //这行是解析package.json的, 然后下面就可以用模板来写了大概是这样<%= pkg.name %>
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' //这banner就是生成的文件头, 一般用来注释
},
build: {
src: 'src/<%= pkg.name %>.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
这是初始化配置参数
然后需要注册任务并执行
grunt.loadNpmTasks('grunt-contrib-uglify'); //这个是从npm中注册任务
grunt.registerTask('default', ['uglify']); //这行是把后面的任务改名为default, 就是默认执行的任务
如果我想自己定义一个任务, 就这样:
grunt.registerTask('default', 'Log some stuff.', function() {
grunt.log.write('Logging some stuff...').ok();
});