您的位置:首页 > Web前端 > JavaScript

grunt学习笔记三:gruntfile.js-demo

2015-11-10 18:30 543 查看
//wrapper 函数, 包含整个Grunt函数

//配置 五个插件

module.exports = function(grunt){

//初始化configure对象

grunt.initConfig({

//将 package.json 文件的配置信息 存入 pkg 属性内部,来访问package文件内的属性

pkg: grunt.file.readJSON('package.json')

//配置concat对象

concat:{

options:{

//定义一个用于插入合并输出文件之间的字符

separtor:";"

},

dist:{

//将要合并的文件

src: ['src/**/*.js'],

//合并后的js文件 存放位置

dest: 'dist/<%= pkg.name %>.js'

}

}

//配置uglify插件

//让uglify在dist/目录中创建了一个包含压缩结果的JavaScript文件

uglify:{

options:{

// 此处定义的banner注释将插入到输出文件的顶部

banner:'/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'

},

dist:{

files:{

//uglify会自动压缩concat任务中生成的文件

'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']

}

}

}

//QUnit插件

qunit:{

files:['test/**/*.html']

},

//JSHint插件

jshint: {

// define the files to lont

//文件数组(也就是你需要检测的文件数组)

files:['gruntfiles.js','src/**/*.js','test/**/*.js'],

//configure JSHint (documented at http://www.jshint.com/docs/)
// options 对象用于重写JSHint提供的默认检测规则

options: {

//more options here if you want to override JSHint defaults

globals:{

jQuery:true,

console:true,

module:true

}

}

}

//watch插件:

//你可以在命令行使用grunt watch来运行这个任务。

//当它检测到任何你所指定的文件(在这里我使用了JSHint任务中需要检测的相同的文件)发生变化时,

//它就会按照你所指定的顺序执行指定的任务(在这里我指定了jshint和qunit任务)

watch:{

files:['<%= jshinit.files %>'],

tasks:['jshinit','qunit']

}

//加载所需要的Grunt插件

//应该已经全部通过npm安装好了

grunt.loadnpmTasks('grunt-contrib-uglify');

grunt.loadNpmTasks('grunt-contrib-jshint');

grunt.loadNpmTasks('grunt-contrib-qunit');

grunt.loadNpmTasks('grunt-contrib-watch');

grunt.loadNpmTasks('grunt-contrib-concat');

//在命令行上输入"grunt test",test task就会被执行。

grunt.registerTask('test',['jshint','qunit']);

//只需在命令行上输入"grunt",就会执行default task

grunt.registerTask('default',['jshint','qunit','concat','uglify']);

});

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: