Pug JS 变量传递
Pug JS variable passing
你好,我在将变量从 gulp 传递给哈巴狗然后再传递给过滤器时遇到了问题。我这样传递变量。
gulp.task('pug-wp', function () {
return gulp.src('src/templates/*.pug')
.pipe(pug({
pretty: true,
filters: {
php: pugPHPFilter
},
data: {
development: 'php'
}
}))
.pipe(rename({
extname: ".php"
}))
.pipe(gulp.dest(outputPath))
.pipe(browserSync.stream());
然后我想在
中使用它
:php(type=development)
我有错误说
msg: "development" is not constant. All filters are rendered compile-time so filter options must be constants.
事实上,过滤器是经过编译的,所以表达式在过滤器属性中不可用,这不是标签元素的属性,这都是静态的,但你可以使用这个技巧:
case development
when 'php'
:php(type='php')
when 'foo'
:php(type='foo')
when 'bar'
:php(type='bar')
或者如果developement
变量只依赖于环境,动态传递过滤器即可:
switch (developement) {
case 'php':
pugPHPFilter.setSomeDefaultOption({ type: 'php' });
break;
case 'foo':
pugPHPFilter.setSomeDefaultOption({ type: 'foo' });
break;
}
.pipe(pug({
pretty: true,
filters: {
php: pugPHPFilter
}
}))
setSomeDefaultOption
是一个示例,请参考您的 pugPHPFilter
以找到等效函数。
你好,我在将变量从 gulp 传递给哈巴狗然后再传递给过滤器时遇到了问题。我这样传递变量。
gulp.task('pug-wp', function () {
return gulp.src('src/templates/*.pug')
.pipe(pug({
pretty: true,
filters: {
php: pugPHPFilter
},
data: {
development: 'php'
}
}))
.pipe(rename({
extname: ".php"
}))
.pipe(gulp.dest(outputPath))
.pipe(browserSync.stream());
然后我想在
中使用它:php(type=development)
我有错误说
msg: "development" is not constant. All filters are rendered compile-time so filter options must be constants.
事实上,过滤器是经过编译的,所以表达式在过滤器属性中不可用,这不是标签元素的属性,这都是静态的,但你可以使用这个技巧:
case development
when 'php'
:php(type='php')
when 'foo'
:php(type='foo')
when 'bar'
:php(type='bar')
或者如果developement
变量只依赖于环境,动态传递过滤器即可:
switch (developement) {
case 'php':
pugPHPFilter.setSomeDefaultOption({ type: 'php' });
break;
case 'foo':
pugPHPFilter.setSomeDefaultOption({ type: 'foo' });
break;
}
.pipe(pug({
pretty: true,
filters: {
php: pugPHPFilter
}
}))
setSomeDefaultOption
是一个示例,请参考您的 pugPHPFilter
以找到等效函数。