0
我是新来的吞噬框架。我一直在研究一个小型的gdp脚本,它会将Markdown文件传递给JSON字符串,然后使用Jade模板呈现最终的HTML。我使用gulp-wrap
将数据传递到我的玉模板“文件名”选项需要使用“包含”与“相对”路径
// md to jade blog
gulp.task('blog',() => {
gulp.src(path.join(dirs.source, dirs.blogs, entries.md))
.pipe(md(marked))
.pipe(plumber())
.pipe(wrap(function(data) {
// read correct jade template from disk
let template = path.join(dirs.source, dirs.layouts, data.contents.template)
// template location is at 'src/_layouts/base-blog.jade'
return fs.readFileSync(template).toString();
}, {
}, {
engine: 'jade'
}))
.pipe(rename({extname:'.html'}))
.pipe(gulp.dest(dest));
});
}
我不断收到以下错误,当我运行它:
Message:
Jade:11
9| //- var pageTitle = config.pageTitle || ''
10|
> 11| include ../_modules/project-list/project-list
12| include ../_modules/about/about
13|
14| doctype html
the "filename" option is required to use "include" with "relative" paths
Details:
path: undefined
任何人都不会有如何解决这个问题的想法?
感谢@Filaton, .pipe(套(功能(数据){// 从磁盘中读取正确的玉模板 让模板= path.join (dirs.source,dirs.layouts,data.contents.template) return fs.readFileSync(template).toString(); },{ 漂亮:真, 文件名:path.join(dirs.source,dirs.layouts, '基blog.jade'), BASEDIR:path.resolve(), 配置:配置 }, 我通过设计布局名称来解决问题。但它是非常多的尝试和错误,找出我应该把代码放在gulp-wrap –
是的,我同意关于Jade/Pug/Gulp的文档可能会更好,但很高兴你解决了它。欢迎来到Stack Overflow! :) – filaton