我是靠谱客的博主 尊敬丝袜,最近开发中收集的这篇文章主要介绍没有闲话和grunt.initConfig(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

grunt.initConfig()为Gruntfile.js的核心部分,它接收对象作为参数。

对象包含两种类型的属性,一种是单纯的变量,一种是task类型。举个栗子:

grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
//单纯的变量,像我一样单纯
concat: {}
//task类型
});

PS:所有单纯的变量可以'prefix<%=var%>suffix'的形式读取

 

task类型也包含两种类型的属性,一种是options,一种是具体的task(标准说法为target)

target同样包含两种类型的属性,一种是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视task不同而不同,以下介绍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的作为源文件

   string fs.Stats(node中的检测文件类型的类)的方法名

  1. isFile 普通文件
  2. isDirectory 文件夹
  3. isBlockDevice 块设备文件(POSIX概念,比如移动硬盘对应的文件)
  4. isCharacterDevice 字符设备文件(POSIX概念,比如键盘鼠标对应的文件)
  5. isSymbolicLink 软链接文件(POSIX概念,理解成windows下的快捷方式吧)
  6. isFIFO (POSIX概念,管道文件,用于进程间通信)
  7. isSocket (POSIX概念,套接字文件,用于端口通信)

nonull: 嗯,不太懂

dot: boolean 以.开头的文件(linux中的隐藏文件)亦作为源文件,默认为false

matchBase: 可能存在理解的偏差

  我的case使用了下面的expand,目录结构为src下123/acb,acb/123,使用如下配置

 

files: [{
expand: true,
cwd: 'src/',
src: ['a?b'],
dest: 'dist/'
}]

 

  目标文件夹下将出现acb文件夹,但不包含任何文件,而添加matchBase后

files: [{
expand: true,
cwd: 'src/',
src: ['a?b'],
dest: 'dist/',
matchBase: true
}]

  目标文件夹下将出现acb文件夹和123文件夹,acb文件夹为空,123文件夹下包含acb文件

 

expand: boolean 启用扩展属性,默认为false

dest(expand): string 目标文件夹

cwd: string src的相对路径

ext: string 生成文件的后缀名

expand: true,
cwd: 'src/',
src: ['*.js'],
dest: 'dest/',
ext: '.min.js'

flatten: 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的基本配置,还有瑕疵,下一篇开始从各个插件着手具体的应用。

转载于:https://www.cnblogs.com/tarol/p/4187192.html

最后

以上就是尊敬丝袜为你收集整理的没有闲话和grunt.initConfig()的全部内容,希望文章能够帮你解决没有闲话和grunt.initConfig()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部