首页 > 代码库 > 没有闲话和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种通配符

  1. *匹配separator之外的所有字符0-N
  2. ?匹配separator之外的所有字符1
  3. **匹配所有字符0-N
  4. {}匹配其中逗号分隔的表达式
  5. !反集合

 最后是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()