我们正在开发一个需要一些共享布局和一些自定义布局的汇编项目。
最初我们有一个默认页面的目的地。现在我们打破了这一点,以便每个品牌/网站都有自己的分发文件夹。
我的问题是 - 在我们把所有东西都正确组装完毕之前。现在我们有多个发行版,事情变得有些混乱:)
当前设置:
模板
|-- templates
| |-- _default
| | |--includes
| | |--layouts
| | |--pages
| |-- brand 1
| | |--includes
| | |--layouts
| | |--pages
| |-- brand 2
| | |--includes
| | |--layouts
| | |--pages
我们的组装任务:
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
答案 0 :(得分:1)
导致错误的显而易见的事情是您的布局被注释掉了。除此之外,您应该能够做到:
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 :(得分:0)
使用目标中的选项,我能够修复错误并推送到多个dist文件夹。
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']}
}