我们的项目正在使用Gulp。现在我有一个要求:我们有多个页面级 HTML 文件,例如login.html和my.html。在这些原始 HTML 文件中,有一个名为 的变量{{PAGE_TITLE}},应分别将其替换(由Gulp)为"Login to System"和"My Account"。这是我当前的脚本:
gulp.task('pages', ['clean:tmp'], function () {
var pageTitle = '';
return gulp.src('/my/source/html/**/*.html')
.pipe(tap(function (file, t) {
pageTitle = /index.html$/.test(file.path) ? 'Login to System' : 'My Account';
}))
.pipe(replace(/{{PAGE_TITLE}}/g, pageTitle))
.pipe(gulp.dest('/my/dest/'));
});
Run Code Online (Sandbox Code Playgroud)
事实证明该变量pageTitle从未在replace. 我已经搜索了gulp-tap很多次文档,但我仍然不知道如何使其工作。请帮忙,谢谢。
这篇文章:使用 Gulp.js 和通配模式修改文件就地(相同目标)试图达到相同的效果,但他提出了一些其他解决方案。
我想出解决方案如下:
gulp.task('pages', ['clean:tmp'], function () {
function replaceDynamicVariables(file) {
var pageTitle = /login.html$/.test(file.path) ? 'Login to System' : 'My Account';
file.contents = new Buffer(String(file.contents)
.replace(/{{PAGE_TITLE}}/, pageTitle)
);
}
return gulp.src('/my/source/html/**/*.html')
.pipe(tap(replaceDynamicVariables))
.pipe(gulp.dest('/my/dest/'));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2472 次 |
| 最近记录: |