我正在努力解决如下所示的grunt-assemble grunt 任务配置:
assemble: {
options: {
flatten: false,
expand: true,
assets: '',
layout: 'default.hbs',
layoutdir: 'templates/layouts',
partials: ['templates/includes/*.hbs'],
helpers: ['templates/helpers/*.js'],
data: ['templates/data/*.{json,yml}']
},
dev: {
src: 'templates/pages/**/*.hbs',
dest: 'build/'
}
assemble.io 的项目模板的脚手架如下所示:
templates
├── helpers
├── includes
│ ├── page-footer.hbs
│ ├── page-header.hbs
│ └── scripts.hbs
├── layouts
│ └── default.hbs
└── pages
├── en
│ └── index.hbs
├── fr
│ └── index.hbs
└── index.hbs
我的愿望是得到类似的东西:
build
├── en
│ └── index.html
├── fr
│ └── index.html
└── index.html
但相反,我得到了类似的东西:
build
└── templates
└── pages
├── en
│ └── index.html
├── fr
│ └── index.html
└── index.html
我确实尝试了一些(实际上很多)组合(使用flatten
和expand
以及cwd
选项),但我被卡住了。
使用flatten
具有使index.html
文件相互覆盖的后果。
所以我实际上将渲染到.tmp目录,然后将文件移动到构建目录。我不喜欢那个解决方案,因为那时page.assets
它仍然被破坏(它的值将是../../..
,对于根 index.html)。