使用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好点,问题链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
整个文件数据流还在进行过程中的时候,好像是不能删除作为源头的文件的。(只是好像,我自己也记不太清了。
不过是有办法绕过这个机制的,虽然有点繁琐。
监控整个数据流的
finish
事件,事件触发的时候删除源文件,删除完成之后再把输出的新文件改成源文件的名字就行了。我以前就是这么做的,不知道现在有没有相应插件。你直接输出文件到原目录不就覆盖了原文件了么,gulp.dest()就是输出文件,指定一个路径;至于使用方法看文档吧
在官方文档中找到了gulp 中文文档
具体操作代码如下