我在处理 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目录中,然后将文件移动到build目录中。我不喜欢这个解决方案,因为
page.assets
仍然损坏(其值将为../../..
,对于根目录的index.html
)。
files
对象或其他可能的语法有点令人困惑。 - zeropaper