这是我关注的帖子,没有成功。
Modify file in place (same dest) using Gulp.js and a globbing pattern
这是我的代码
var fstrm = require('gulp');
var inlineCss = require('gulp-inline-css');
var rename = require("gulp-rename");
(function() {
fstrm.src("emails/**/index.html")
.pipe(inlineCss({}))
.pipe(rename("inline.html"))
.pipe(fstrm.dest("emails"));
}());
它在emails/
下的子目录中找到所有index.html并内联css(我可以确认),但无法将该文件写回index.html所在的同一子目录中。相反,它会将它们全部写入电子邮件目录,覆盖之前的inline.html,然后只留下最后一个要处理的文件。
我已尝试过提供的所有变体,而另一篇与此问题相关的帖子却没有成功。自从fileglob改变了吗?还是吞了一口气?我使用乙烯基-fs而不是gulp运行它,这是同样的交易。
答案 0 :(得分:1)
查看gulp-rename docs的“备注”部分,这有效。
var gulp = require('gulp');
var rename = require('gulp-rename');
var inlineCss = require('gulp-inline-css');
gulp.task('doit', function() {
return gulp.src("emails/**/*index.html")
.pipe(inlineCss({}))
.pipe(rename(function(path) {
path.dirname = '/emails/' + path.dirname;
path.basename = path.basename.replace('index', 'inline');
return path;
}))
.pipe(gulp.dest("."));
});