gpt4 book ai didi

javascript - Gulp/Vinyl-fs - dest 与 src 相同的目录不适用于 gulp-rename

转载 作者:行者123 更新时间:2023-12-03 07:34:08 24 4
gpt4 key购买 nike

这是我关注但没有成功的帖子。

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 发生了变化吗?或 gulp ?我使用 Vinyl-fs 而不是 gulp 运行了这个,效果是一样的。

最佳答案

查看 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("."));
});

关于javascript - Gulp/Vinyl-fs - dest 与 src 相同的目录不适用于 gulp-rename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com