我正在制作一个简单的概念验证网站,使用 JSON 作为数据源,使用 Handlebars 作为模板引擎,以期将这两件事“合并”到静态 HTML 文件中。
该网站将非常模块化,因此每个组件都将使用不同的 Handlebars 'partial' 构建,每个组件都将使用其自己的 JSON 文件中的数据。
我目前的开发结构是这样的:
src/
models/
header.json
article.json
footer.json
partials/
header.hbs
article.hbs
footer.hbs
index.hbs
index.hbs 文件的内容是这样的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test App</title>
</head>
<body>
{{> header}}
{{> article}}
{{> footer}}
</body>
</html>
部分现在非常简单。例如header.hbs
包含:
<header>{{header}}</header>
我有以下 gulp 文件gulpfile.js
,它是我想要实现的目标的一部分:
var gulp = require('gulp');
var data = require('gulp-data');
var handlebars = require('gulp-compile-handlebars');
var rename = require('gulp-rename');
gulp.task('default', function () {
var templateData = {
header: 'Welcome'
},
options = {
batch : ['./src/partials']
}
return gulp.src('src/index.hbs')
.pipe(handlebars(templateData, options))
.pipe(rename('index.html'))
.pipe(gulp.dest('dist'));
});
到目前为止,它在我的部分中捆绑在一起,并在一个名为dist/index.html
.
缺少的是 JSON 数据部分。目前,部分使用的 JSON 数据在 gulp 文件(变量templateData
)中定义,但我希望每个部分都使用src/models
JSON 文件中的数据以提供清晰的分离。JSON 文件的名称将与使用.hbs
它的部分名称相同。
我不清楚该怎么做。gulp -compile-handlebars 文档建议使用 gulp-data 将支持我需要的东西,但我正在努力拼凑适用于我的特定用例的gulp-data 文档中的任何内容。
谁能建议我如何修改我的 gulp 文件来完成这个?
非常感谢。