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

发布于 2022-09-04 14:01:04 字数 641 浏览 6 评论 0

到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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦中楼上月下 2022-09-11 14:01:04

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

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

遇到 2022-09-11 14:01:04

你直接输出文件到原目录不就覆盖了原文件了么,gulp.dest()就是输出文件,指定一个路径;至于使用方法看文档吧

仅此而已 2022-09-11 14:01:04

在官方文档中找到了gulp 中文文档
image.png
具体操作代码如下

  gulp.src('./app/**/*.js', {base: './'})
      .pipe(prettify())
      .pipe(gulp.dest('./'),  { overwrite: true });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文