【发布时间】:2014-04-09 16:50:40
【问题描述】:
我正在尝试将我所有的 .jade 模板编译成一个 js 文件,我正在使用 Gulpjs 和 gulp-jade、gulp-concat..
我可以获取单个文件,但问题是那里呈现的所有函数都具有相同的名称,它们都称为“模板”。
foo.jade:
.fooDiv
h1 Foo here
foo2.jade:
.foo2Div
h1 Foo2 here
Gulp 文件:
gulp.src("templates/**/*.jade")
.pipe(jade({client: true}))
.pipe(concat("templates.js"))
.pipe(gulp.dest("../website/templates"))
这会输出一个像这样的文件:
function template(locals) {
var buf = [];
var jade_mixins = {};
buf.push("<div class=\"fooDiv\"><h1>Foo here</h1></div>");;return buf.join("");
}
function template(locals) {
var buf = [];
var jade_mixins = {};
buf.push("<div class=\"foo2Div\"><h1>Foo2 here</h1></div>");;return buf.join("");
}
而我想要的是这样的:
function foo(locals) {
var buf = [];
var jade_mixins = {};
buf.push("<div class=\"fooDiv\"><h1>Foo here</h1></div>");;return buf.join("");
}
function foo2(locals) {
var buf = [];
var jade_mixins = {};
buf.push("<div class=\"foo2Div\"><h1>Foo2 here</h1></div>");;return buf.join("");
}
有什么办法可以做到吗?找了好久也没找到。
干杯。 蔡欧
编辑:
Jade 现在接受jade.compileClient 的名称选项。在这里查看:https://github.com/jadejs/jade/blob/master/jade.js
【问题讨论】:
-
将编辑添加为答案并提及如何/如果您动态更改
name值会很有用。 -
@SebastianThomas 我发现this comment 很有帮助。我已经发布了这个解决方案作为答案。
标签: javascript templates pug gulp