【问题标题】:Grunt files set nonull to true by defaultGrunt 文件默认将 nonull 设置为 true
【发布时间】:2014-02-04 05:20:34
【问题描述】:

我经常使用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,以便在文件不存在时获得一些警告。有没有办法默认设置,这样我就不必触摸它们中的每一个?

我尝试使用 options 对象,但到目前为止没有运气。

【问题讨论】:

  • 您使用的语法无效
  • @IlanFrumer 是的,我是凭记忆输入的,在实际项目中是正确的。
  • 请修复它,以便我可以测试它
  • @IlanFrumer 那里,我修好了

标签: javascript gruntjs concat grunt-contrib-concat


【解决方案1】:

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:

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}
  }
});  

【讨论】:

  • 好酷!我希望插件本身会更通用,但是现在可以了,谢谢:)
  • 我认为grunt.config.get 的返回值与输入的值相同(grunt 没有规范化),因此设置prop.nonull = true 仅适用于files-array format。 (或 compact format 获取不同的属性键。)
猜你喜欢
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 2016-07-14
相关资源
最近更新 更多