Grunt文件默认将nonull设置为true

3

我经常使用grunt-contrib-concat,但发现有些文件没有被合并。后来我发现这是一个小错误。无论如何,我有很多不同的文件需要合并到不同的目的地。

grunt.initConfig({
  concat: {
    js: {
      files: [
        {
          src: ["file1.js"],
          dest: "some/dir/fileXY.js"
        },
        {
          src: ["x/file2.js"],
          dest: "some/other/dir/fileAB.js"
        },

        // and so on, and on
      ]
    }
  }
}

根据文档所述,我必须在对象字面量中设置nonull: true,以便在文件不存在时获得一些警告。有没有一种默认设置方式,让我不必每一个都去更改呢?

我尝试使用选项对象,但是目前没有成功。


您正在使用的语法无效。 - Ilan Frumer
@IlanFrumer 是的,我是凭记忆打的,实际项目中是正确的。 - dan-lee
请修复它,以便我可以测试。 - Ilan Frumer
@IlanFrumer 好了,我修好了 - dan-lee
1个回答

4

Grunt可以让你获取和设置任何配置属性。

将其放置在grunt.initConfig下面:

  var files = grunt.config.get('concat.js.files').map(function(prop){ 
    prop.nonull = true;
    return prop;
  });

  grunt.config.set('concat.js.files',files);

另一种方法是先创建对象,然后将其传递给initConfig函数:

另一种方法是先创建对象,然后将其传递给initConfig函数:

files = [
  {
    src: ['a.js'],
    dest: 'b.js'
  }, {
    src: ['c.js'],
    dest: 'd.js'
  }
];

files = files.map(function(prop) { 
  prop.nonull = true;
  return prop;
});

grunt.initConfig({
  concat: {
    js: { files: files}
  }
});  

是的,很酷!我希望这个插件本身更通用一些,但现在这样做可以了,谢谢 :) - dan-lee
1
我认为 grunt.config.get 的返回值与输入值相同(grunt 不进行规范化),因此设置 prop.nonull = true 仅适用于 文件数组格式。(或者 紧凑格式 用于不同的属性键。) - Carl G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接