我有一个gulpfile定义了两个任务:“英语”和“意大利语”。
他们实际上返回了几个子任务,一个用于网站页面,一个用于每个团队成员HTML代码段,一个用于客户端本地化字符串。
我在团队成员摘要任务方面遇到问题。 “意大利语”任务的团队成员子任务会无条件覆盖“英语”子任务的输出。
“英语”和“意大利语”任务如果分别运行,都可以按预期工作,但是我希望它们都在“默认”任务中运行。
使用相同的gulp实例时似乎共享了一些东西,但这对我来说真的没有意义。
我在使用Node v10.16.0,gulp 3.9.1的macOS Mojave。
有人遇到过类似的问题吗?
这是重现该错误的最小模板:
{%esc:s}
<p>{localisedDescription}</p>
{/esc}
还有gulpfile:
const gulp = require('gulp');
const rename = require('gulp-rename');
const dusthtml = require('gulp-dust-html');
const content = {
teamMembers: [
{
detailPageName: 'A.html',
description: {
en: `Description A.`,
it: `Descrizione A.`
}
},
{
detailPageName: 'B.html',
description: {
en: `Description B.`,
it: `Descrizione B.`
}
}
]
};
gulp.task('english', function () {
const teamDetailPagesTask = content.teamMembers.map(member => {
member.localisedDescription = member.description['en'];
return gulp.src('templates/bug-team-member-detail.dust')
.pipe(dusthtml({
basePath: 'templates',
data: member
}))
.pipe(rename(member.detailPageName))
.pipe(gulp.dest('bug/en'));
});
return [...teamDetailPagesTask, /* other tasks here */];
});
gulp.task('italian', function () {
const teamDetailPagesTask = content.teamMembers.map(member => {
member.localisedDescription = member.description['it'];
return gulp.src('templates/bug-team-member-detail.dust')
.pipe(dusthtml({
basePath: 'templates',
data: member
}))
.pipe(rename(member.detailPageName))
.pipe(gulp.dest('bug/it'));
});
return [...teamDetailPagesTask, /* other tasks here */];
});
gulp.task('default', ['english', 'italian']);