grunt 配置

发布于 2025-01-13 07:58:35 字数 3047 浏览 2 评论 0

options 属性

  1. 可以用来指定覆盖内置属性的默认值
  2. 此外,每一个目标(target)中还可以拥有一个专门针对此目标(target)的 options 属性。目标(target)级的平 options 将会覆盖任务级的 options。
  3. 可选的
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

一张白纸

暂无简介

文章
评论
25 人气
更多

推荐作者

最终幸福

文章 0 评论 0

与酒说心事

文章 0 评论 0

┈┾☆殇

文章 0 评论 0

梦醒灬来后我

文章 0 评论 0

念﹏祤嫣

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文