早闻自动化部署大名,可惜我性子懒散,至今才了解了解。官网看了是一头雾水,直到跟着叶小钗一笔一画,才了解这个
Grunt
是怎么一回事,回头再看官方案例。对它也再无神秘的面纱,纸上得来终觉浅,绝知此事要躬行。
安装grunt的环境
首先需要node
环境,用npm
安装grunt
1 | npm install -g grunt-cli |
基础实例
新建一个空文件夹,并添加两个文件:package.json
与Gruntfile.js
这两个文件要在项目的根目录下
package.json
中添加如下代码,Gruntfile.js
中暂且不管:
1 | { |
调用npm命令安装:
1 | npm install |
创建测试的用例
如图:
里面的代码也是随便写的,只用来演示,为了对比效果,将代码粘贴如下:
test.js
:
1 | function test1(){ |
event.js
:
1 | function addEvents1(){ |
require.js
是从requirejs官网下载的
编辑Gruntfile.js
下面是对grunt
插件uglify
的简单实例
1 | module.exports = function (grunt) { |
运行grunt
1 | grunt |
结果如图:
查看uglifyResult.min.js
的内容,已经将test.js
和event.js
的内容压缩到一起了,这儿就不放图了,有兴趣的自己试试。
经过上面的基础实例,想必已经对grunt
的作用和工作原理有所理解,只需写个配置文件,运行下grunt命令,就可以压缩文件了,果然方便。上面只是对grunt
插件uglify
的演示,其他插件的用法,我们继续。
Grunt相关配置
从上面我们看到了grunt
有种种插件,各种插件的用法也不尽相同,除此之外,grunt
还有一些约定,使得每个grunt
插件都可以配置公共属性:
options
files
小技巧:
src
匹配所有的.styl
文件:设置src: '*.styl'
是匹配不到的,因为*
不匹配/
。**
可以匹配/
,且一个路径中只可以出现一个**
,所以可以设置为:src: '**/*.styl'
- 生成多个
dest
文件:dest
只能是一个字符串,表示单个文件,设置为[‘result/.css‘]会报错,只能用动态创建文件对象:
1
2
3
4
5
6
7
8
9 files: [
{
expand: true,
src: ['*.styl'],
cwd: 'css/stylus/src/',
dest: 'css/stylus/result/',
ext: '.css'
}
]
更多实例
实例1:单独使用concat插件
package.json
不变,Gruntfile.js
如下:
1 | grunt.initConfig({ |
运行grunt
1 | grunt |
结果如图:
concatResult.js
内容