如何使用grunt-concat-json排除输出中的目录结构?

时间:2015-11-12 17:23:52

标签: json gruntjs npm assemble

我一直试图让grunt-concat-json使用我的目录结构。目前,它看起来像这样:

_src/
  assembly/
    _data/**/*.json

concat-json插件有一个功能,如果它们共享相同的路径,则将文件合并到同一个对象中。换句话说,给定我的目录结构的输出应该是:

{
  "_src": {
    "assembly": {
      "_data": {
        "some_folder": {
          "some_keys": "some_values"
        }
      }
    }
  }
}

该插件允许您设置当前工作目录,并确保工作目录路径不包含在输出中。所以现在我的输出应该是:

{
  "some_folder": {
    "some_keys": "some_values"
  }
}

然而,当我设置当前工作目录时,输出不会改变。我不相信我需要"扩展:true"否则它不会连接文件。至少,我还没有能够做到这一点。只需将每个源文件复制到目标文件夹,并将expand设置为true。

我的concat-json咕噜声任务:

"concat-json": {
    options: {
        space: '\t',
    },
    "pre_assemble": {
        cwd: '<%= pkg.buildPath %>assembly/_data/',
        src: '**/*.{json,yml}',
        dest:'<%= pkg.buildPath %>assembly/_data/casestudy.json'
    }
},

1 个答案:

答案 0 :(得分:0)

看起来我只需要摆脱cwd设置中的尾部斜杠。

"concat-json": {
    options: {
        space: '\t',
    },
    "pre_assemble": {
        cwd: '<%= pkg.buildPath %>assembly/_data',
        src: '**/*.{json,yml}',
        dest:'<%= pkg.buildPath %>assembly/_data/casestudy.json'
    }
}

从输出中正确排除工作目录中的所有文件夹。