grunt 配置
options 属性
- 可以用来指定覆盖内置属性的默认值
- 此外,每一个目标(target)中还可以拥有一个专门针对此目标(target)的 options 属性。目标(target)级的平 options 将会覆盖任务级的 options。
- 可选的
grunt.initConfig({
concat: {
options: {
// 这里是任务级的 Options,覆盖默认值
},
foo: {
options: {
// "foo" target options may go here, overriding task-level options.
},
},
bar: {
// No options specified; this target will use task-level options.
},
},
});
简洁格式
通常情况下它用于只读任务,还支给每个 src-dest 文件映射指定额外的属性。
grunt.initConfig({
jshint: {
foo: {
src: ['src/aa.js', 'src/aaa.js']
},
},
concat: {
bar: {
src: ['src/bb.js', 'src/bbb.js'],
dest: 'dest/b.js',
},
},
});
文件对象格式
属性名就是目标文件,源文件就是它的值(源文件列表则使用数组格式声明)
但是不能够给每个映射指定附加的属性。
grunt.initConfig({
concat: {
foo: {
files: {
'dest/a.js': ['src/aa.js', 'src/aaa.js'],
'dest/a1.js': ['src/aa1.js', 'src/aaa1.js'],
},
},
bar: {
files: {
'dest/b.js': ['src/bb.js', 'src/bbb.js'],
'dest/b1.js': ['src/bb1.js', 'src/bbb1.js'],
},
},
},
});
文件数组格式
支持每个目标对应多个 src-dest 文件映射,同时也允许每个映射拥有额外属性:
grunt.initConfig({
concat: {
foo: {
files: [
{src: ['src/aa.js', 'src/aaa.js'], dest: 'dest/a.js'},
{src: ['src/aa1.js', 'src/aaa1.js'], dest: 'dest/a1.js'},
],
},
bar: {
files: [
{src: ['src/bb.js', 'src/bbb.js'], dest: 'dest/b/', nonull: true},
{src: ['src/bb1.js', 'src/bbb1.js'], dest: 'dest/b1/', filter: 'isFile'},
],
},
},
});
通配符模式
1、 匹配任意数量的字符,但不匹配 /
2、 ? 匹配单个字符,但不匹配 /
3、 * 匹配任意数量的字符,包括 /,只要它是路径中唯一的一部分
4、 {} 允许使用一个逗号分割的“或”表达式列表
5、 ! 在模式的开头用于排除一个匹配模式所匹配的任何文件
动态构建文件对象
expand 设置为 true 将启用下面的选项:
1、 cwd 所有 src 指定的匹配都将相对于此处指定的路径(但不包括此路径) 。
2、 src 相对于 cwd 路径的匹配模式。
3、 dest 目标文件路径前缀。
4、 ext 对于生成的 dest 路径中所有实际存在文件,均使用这个属性值替换扩展名。(替换拓展名)
5、 extDot 用于指定标记扩展名的英文点号的所在位置。可以赋值 'first' (扩展名从文件名中的第一个英文点号开始) 或 'last' (扩展名从最后一个英文点号开始),默认值为 'first' (拓展名从哪里开始)
6、 flatten 从生成的 dest 路径中移除所有的路径部分。
7、 rename 嵌入自定义函数,返回包含新目标和文件名的字符串。 为每个匹配的 src 文件调用此函数(在扩展名重命名和展平后)
例:
grunt.initConfig({
uglify: {
static_mappings: {
// Because these src-dest file mappings are manually specified, every
// time a new file is added or removed, the Gruntfile has to be updated.
files: [
{src: 'lib/a.js', dest: 'build/a.min.js'},
{src: 'lib/b.js', dest: 'build/b.min.js'},
{src: 'lib/subdir/c.js', dest: 'build/subdir/c.min.js'},
{src: 'lib/subdir/d.js', dest: 'build/subdir/d.min.js'},
],
},
dynamic_mappings: {
// Grunt will search for "**/*.js" under "lib/" when the "uglify" task
// runs and build the appropriate src-dest file mappings then, so you
// don't need to update the Gruntfile when files are added or removed.
files: [
{
expand: true,
cwd: 'lib/',
src: ['**/*.js'], //所有的 js
dest: 'build/',
ext: '.min.js',
extDot: 'first'
},
],
},
},
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
下一篇: TypeScript 常见问题
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论