grunt入门讲解3:实例讲解使用 Gruntfile 配置任务
来源:互联网 发布:淘宝全屏店招ps怎么做 编辑:程序博客网 时间:2024/05/16 04:25
这个Gruntfile 实例使用到了5个 Grunt 插件:
grunt-contrib-uglify
grunt-contrib-qunit
grunt-contrib-concat
grunt-contrib-jshint
grunt-contrib-watch
上面的uglify,concat,watch这三个插件用的最多,第一个插件是用来压缩文件的,第二个插件是用来合并文件的,第三个插件用来监听文件内容的,如果文件内容改变了,就会触发回调方法进行相应的处理。
我们一步一步来讲解这个 Gruntfile 实例。
首先是 "wrapper" 函数,它包含了整个Grunt配置信息。
module.exports = function(grunt) { }
在这个函数中,我们可以初始化 configuration 对象:
grunt.initConfig({ });
接下来从package.json 文件读入项目配置信息,并存入pkg 属性内。这样我们就可以访问到package.json文件中列出的属性了,如下:
pkg: grunt.file.readJSON('package.json')
到目前为止我们就可以看到如下配置:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json')
});
};
接下来我们就可以为我们的每个任务来定义相应的配置了,每个任务的配置对象作为Grunt配置对象的属性,并且这个属性名称与任务名相同。因此"concat"任务就是我们的配置对象中的"concat"属性。下面便是我的"concat"任务的配置对象。
concat: {
options: {
// 定义一个用于插入合并输出文件之间的字符
separator: ';'
},
dist: {
// 将要被合并的文件
src: ['src/**/*.js'],
// 合并后的JS文件的存放位置
dest: 'dist/<%= pkg.name %>.js'
}
}
这里使用了pkg.name来访问我们刚才引入并存储在pkg属性中的package.json文件信息,它会被解析为一个JavaScript对象。Grunt自带的有一个简单的模板引擎用于输出配置对象(这里是指package.json中的配置对象),这里我让concat任务将所有存在于src/目录下以.js结尾的文件合并起来,然后存储在dist目录中,并以项目名来命名。
现在我们来配置uglify插件,它的作用是压缩JavaScript文件:
uglify: {
options: {
// 此处定义的banner注释将插入到输出文件的顶部
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
},
dist: {
files: {
'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
}
}
}
这里我们让uglify在dist/目录中创建了一个包含压缩结果的JavaScript文件。注意这里我使用了<%= concat.dist.dest>,因此uglify会自动压缩concat任务中生成的文件。
QUnit插件的设置非常简单,你只需要给它提供用于测试运行的文件的位置,注意这里的QUnit是运行在HTML文件上的。
qunit: {
files: ['test/**/*.html']
},
- grunt入门讲解3:实例讲解使用 Gruntfile 配置任务
- grunt入门讲解3:实例讲解使用 Gruntfile 配置任务
- Grunt学习笔记之Gruntfile中任务的配置
- grunt构建工具使用总结(二)Gruntfile文件配置
- spring 实例讲解(入门讲解)
- MPI入门实例讲解
- zookeeper 入门讲解实例
- zookeeper 入门讲解实例
- zookeeper入门讲解实例
- zookeeper 入门讲解实例
- zookeeper 入门讲解实例
- Grunt如何拆分Gruntfile.js进行任务拆分的?
- grunt入门之二 任务配置详解
- 任务配置详解—grunt入门指南
- Jconsole使用实例讲解
- easyUI使用实例讲解
- SharedPrefernces使用实例讲解
- Sqoop使用实例讲解
- php 使用 curl 发送 post 数据
- 遍历集合List
- Servlet学习笔记(三):Servlet基础
- 豆瓣技术架构
- 深入理解Java内存模型(五)——锁
- grunt入门讲解3:实例讲解使用 Gruntfile 配置任务
- 姚博文 springsecurity restful 自定义 csrf
- insmod: error inserting 'hello.ko': -1 Invalid module format
- 面试问题如何回答?
- python 中调用c++定义的函数
- IP数据包在网络中的转发分析
- usb设备请求命令详解
- Linux系统上的Watchdog实现
- 20150123 N2