首页 > 代码库 > 没有闲话和grunt.initConfig()
没有闲话和grunt.initConfig()
grunt.initConfig()为Gruntfile.js的核心部分,它接收对象作为参数。
对象包含两种类型的属性,一种是单纯的变量,一种是task类型。举个栗子:
grunt.initConfig({ pkg: grunt.file.readJSON(‘package.json‘), //单纯的变量,像我一样单纯 concat: {} //task类型});
PS:所有单纯的变量可以‘prefix<%=var%>suffix‘的形式读取
task类型也包含两种类型的属性,一种是options,一种是具体的task
具体的task同样包含两种类型的属性,一种是options,覆盖task类型的options,一种是files
以下例子使用grunt-contrib-concat,用于文件的合并
concat : { options : { separator : ‘;‘, //被覆盖 banner : ‘/*<%= grunt.template.today("yyyy-mm-dd") %>*/‘ }, test : { options : { separator : ‘<%= grunt.util.linefeed %>‘ }, files : [{ dest : ‘dest/hello.js‘, src : [‘src/*.js‘] } ] }}
结构如下图
files部分是所有插件通用的,但options视插件不同而不同,以下介绍files
files有三种写法,例子中最标准且复杂的一种
//第一种,满足所有要求files : [{ dest : ‘dest/hello.js‘, src : [‘src/*.js‘] }]//第二种,无法设置其他参数files : { ‘dest/hello.js‘ : [‘src/*.js‘]}//第三种,只能设置单个任务dest : ‘dest/hello.js‘,src : [‘src/*.js‘]
另外files中的path支持5种通配符
- *匹配separator之外的所有字符0-N
- ?匹配separator之外的所有字符1
- **匹配所有字符0-N
- {}匹配其中逗号分隔的表达式
- !反集合
最后是files的各个属性,分为两个部分,基础(src、dest、filter、nonull、dot、matchBase、expand)和扩展(cwd、ext、flatten、rename)
src: string or array 源文件
dest: string 目标文件
filter: function 传入src中各文件的filepath,筛选出返回true的作为源文件
nonull: 嗯,不太懂
dot: boolean 以.开头的文件,linux中的隐藏文件亦作为源文件,默认为false
matchBase: 搞不清用处
expand: boolean 启用扩展属性,默认为false
dest(expand): string 目标文件夹
cwd: string src的相对路径
ext: string 生成文件的后缀名
expand: true,cwd: ‘src/‘,src: [‘*.js‘],dest: ‘dest/‘,ext: ‘.min.js‘
flttern: boolean 为true则生成的文件统一放在dest文件夹中,无子文件夹,默认为false
expand: true,cwd: ‘src/‘,src: [‘*.js‘, ‘**/*.js‘],dest: ‘dest/‘,ext: ‘.min.js‘,flatten: true
rename: function 传入[dest, filepath, files],默认为return dest + filepath;
以上是initConfig的基本配置,还有瑕疵,下一篇开始从各个插件着手具体的应用。
没有闲话和grunt.initConfig()