首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grunt Assemble:多个分布

Grunt Assemble:多个分布
EN

Stack Overflow用户
提问于 2014-06-24 00:32:34
回答 2查看 399关注 0票数 2

我们正在开发一个组装项目,它需要一些共享布局和一些自定义布局。

最初,我们有一个默认页面的目的地。现在我们打破了这一点,这样每个品牌/网站都有自己的分发文件夹。

我的问题是--在我们解决问题之前,所有的东西都是正确组装的。现在我们有了多个发行版,事情变得有点令人困惑:)

当前设置:

模板

代码语言:javascript
复制
  |-- templates
  |  |-- _default
  |  |  |--includes
  |  |  |--layouts
  |  |  |--pages
  |  |-- brand 1
  |  |  |--includes
  |  |  |--layouts
  |  |  |--pages
  |  |-- brand 2
  |  |  |--includes
  |  |  |--layouts
  |  |  |--pages

我们的组装任务:

代码语言:javascript
复制
    assemble: {
        options: {
        flatten: true,
        production: false,
        postprocess: require('pretty'),

    // Metadata
    pkg: '<%= pkg %>',
    site: '<%= site %>',

    // Templates
    // partials: '<%= site.includes %>',
    // layoutdir: '<%= site.layouts %>',
    // layout: '<%= site.layout %>'
  },
    brand1: {
      files: {'<%= site.justin %>/': ['<%= site.templates %>/justin/**/*.hbs']}
    },
    brand2: {
      files: {'<%= site.jow %>/': ['<%= site.templates %>/jow/**/*.hbs']}
    },
    tonylama: {
      files: {'<%= site.tonylama %>/': ['<%= site.templates %>/tonylama/**/*.hbs']}
    },
    brand3: {
      files: {'<%= site.nocona %>/': ['<%= site.templates %>/nocona/**/*.hbs']}
    },
    brand4: {
      files: {'<%= site.chippewa %>/': ['<%= site.templates %>/chippewa/**/*.hbs']}
    }
}

因此,问题就变成了--我们如何成功地组装成多个发行版?您可以放置options并指向它们各自的布局和包含内容吗?

当我运行grunt assemble:brandname时,我得到一个错误Warning: Layout file (forgot-password.hbs) not found

EN

回答 2

Stack Overflow用户

发布于 2014-06-24 01:21:04

最明显的错误就是你的布局被注释掉了。除此之外,您应该能够执行以下操作:

代码语言:javascript
复制
assemble: {
  options: {
    flatten: true,
    production: false,
    postprocess: require('pretty'),

    // Metadata
    pkg: '<%= pkg %>',
    site: '<%= site %>',

    // Templates
    partials: '<%= site.includes %>',
    layoutdir: '<%= site.layouts %>',
    layout: '<%= site.layout %>'
  },
  justin: {
    options: {layout: 'justin/layout.hbs'},
    files: {
      '<%= site.justin %>/': ['<%= site.templates %>/justin/**/*.hbs']
    }
  },
  jow: {
    options: {layout: 'jow/layout.hbs'},
    files: {
      '<%= site.jow %>/': ['<%= site.templates %>/jow/**/*.hbs']
    }
  },
  tonylama: {
    options: {layout: 'tonylama/layout.hbs'},
    files: {
      '<%= site.tonylama %>/': ['<%= site.templates %>/tonylama/**/*.hbs']
    }
  },
  nocona: {
    options: {layout: 'nocona/layout.hbs'},
    files: {
      '<%= site.nocona %>/': ['<%= site.templates %>/nocona/**/*.hbs']
    }
  },
  chippewa: {
    options: {layout: 'chippewa/layout.hbs'},
    files: {
      '<%= site.chippewa %>/': ['<%= site.templates %>/chippewa/**/*.hbs']
    }
  }
}

也就是说,随着规模的扩大,它将变得更加难以管理-正如您所预期的那样。另一种选择是创建一个插件,为每个品牌自动生成一个“目标”(http://gruntjs.com/configuring-tasks#task-configuration-and-targets)。

票数 1
EN

Stack Overflow用户

发布于 2014-06-24 02:04:30

使用目标中的选项,我能够修复错误并推送到多个dist文件夹。

代码语言:javascript
复制
assemble: {
  options: {
    flatten: true,
    production: false,
    postprocess: require('pretty'),

    // Metadata
    pkg: '<%= pkg %>',
    site: '<%= site %>',
  },
    brand: {
      options: {
        //Template Config
        partials: '<%= site.brandIncl %>',
        layoutdir: '<%= site.brandLayouts %>',
        layout: '<%= site.brandLayout %>'
      },
      files: {'<%= site.brand %>/': ['<%= site.templates %>/brand/pages/*.hbs']}
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24370898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档