Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
782 views
in Technique[技术] by (71.8m points)

使用gulp replace怎么替换原文件,而不是生成新文件?

到stackoverflow,google,百度搜了很多,也没有搜到相关的资料,都有点想自己写一个插件了。

exp:

let gulp = require('gulp');
let batchReplace = require('gulp-batch-replace');

gulp.src('html/**/*.html')
    .pipe(batchReplace([
        1: 2,
        2: 3
    ]))
    .pipe(gulp.dest('.')) //这个dest使用啥?gulp.src貌似不行,'.'当前目录也不行。

大家有没有碰到类似问题,有什么好的解决方案?

PS:为什么另一个dist目录?因为使用的是类JQ前端,不是单页...

==== 补充 ======

我找到了,搜索的思路有问题,之前搜的replace应该搜overwrite好点,问题链接


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

整个文件数据流还在进行过程中的时候,好像是不能删除作为源头的文件的。(只是好像,我自己也记不太清了。
不过是有办法绕过这个机制的,虽然有点繁琐。

监控整个数据流的finish事件,事件触发的时候删除源文件,删除完成之后再把输出的新文件改成源文件的名字就行了。我以前就是这么做的,不知道现在有没有相应插件。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...