如何从Grunt任务的输出文件结构中省略文件夹

时间:2013-12-30 20:34:43

标签: gruntjs assemble

我正在运行一项艰巨的任务来构建一个Assemble站点。

我的任务配置如下:

    assemble: {

        options: {
            flatten: false,
            assets: '<%= config.dist %>',
            dist: '<%= config.dist %>',
            layout: 'default.hbs',
            layoutdir: 'templates/layouts/',
            partials: 'templates/partials/*.hbs',
        },

        pages: {
            files: { '<%= config.dist %>': ['pages/{,*/}*.hbs'] }
        }

    },

在我的源文件中,我有一个这样的结构:

 pages
    cat1
    cat2

输出如下内容:

  dist
      pages
         cat1
         cat2

如何设置任务以使其不包含/ pages文件夹但仍会生成子文件夹?

2 个答案:

答案 0 :(得分:1)

所以你希望它只是dist->cat1dist->cat2?我认为您需要稍微调整pages目标,但我认为您正在寻找expandcwd选项:

pages: {
    files: {
        expand: true,
        cwd: 'pages/',
        src: ['**/*.hbs'],
        dest: '<%= config.dist %>',
        ext: '.html'
    }
}

(这部分来自this answer。)

编辑也添加了ext选项。

答案 1 :(得分:1)

@jakerella很接近,却遗失了一件ext。它应该是:

files: [
  {
    expand: true, 
    cwd: 'pages', 
    src: ['**/*.hbs'], 
    dest: '<%= config.dist %>/', 
    ext: '.html'
  }
]