当我使用gulp-jade@1.1.0编译“index.jade”
时<!DOCTYPE html>
html(lang="en")
head
meta(charset="UTF-8")
title Document
body
- var json = {'foo': 'bar'}
include template
包括“template.jade”
h1= json.foo
gulp-jade总是报告错误,如
[15:11:34] Starting 'jade'...
[15:11:34] Starting 'sass'...
[15:11:34] Finished 'sass' after 2.68 ms
[15:11:34] Plumber found unhandled error:
TypeError in plugin 'gulp-jade'
Message:
C:\Users\Administrator\Desktop\workspace\node\src\jade\template.jade:1
> 1| h1= json.foo
Cannot read property 'foo' of undefined
Details:
path: C:\Users\Administrator\Desktop\workspace\node\src\jade\template.jade
[15:11:34] Finished 'jade' after 19 ms
但编译后的html文件是正确的
<!DOCTYPE html>
<html lang="en"></html>
<head>
<meta charset="UTF-8"/>
<title>Document</title>
</head>
<body>
<h1>bar</h1>
</body>
我的gulpfile就是这样写的
gulp.task('jade', function(){
return gulp.src('src/jade/*.jade')
.pipe(plumber())
.pipe(gulpJade({
jade: jade,
pretty: true
}))
.pipe(gulp.dest('build/html'))
.pipe(connect.reload());
});
答案 0 :(得分:0)
Gulp试图单独编译每个模板。
您必须仅指定入口点( index.jade ):
gulp.task('jade', function(){
return gulp.src('src/jade/index.jade')
.pipe(plumber())
.pipe(gulpJade({
jade: jade,
pretty: true
}))
.pipe(gulp.dest('build/html'))
.pipe(connect.reload());
});
或从 gulp.src 中排除 template.jade