首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查文件中是否包含特定的字符串

检查文件中是否包含特定的字符串
EN

Stack Overflow用户
提问于 2022-04-18 15:16:58
回答 1查看 102关注 0票数 0

我试图使用GULP4压缩一系列的HTML和PHP文件。我遇到的一个问题是,一些文件包含一个<pre>标记。我不想压缩这些文件,因为它会破坏该文件。是否有一种使用GULP的方法,我可以评估一个文件是否包含字符串<pre>,如果包含,避免对该文件运行压缩?这是我的相关代码:

代码语言:javascript
复制
  const gulp = require('gulp');
  const {src, series, parallel, dest} = require('gulp');
  const GulpReplace = require('gulp-replace');
    function no_2_spaces_purchasingdemand_php()
    {
        console.log("no 2 spaces purchasingdemand_php")
        return gulp.src
        (
            'dist/purchasingdemand/**/*.php'
            ,  { base: "./" }
        )
        .pipe
        (
            GulpReplace(' ','☺☻')
        )
        .pipe
        (
            GulpReplace('☻☺','')
        )
        .pipe
        (
            GulpReplace('☺☻',' ')
        )
        .pipe(gulp.dest('./'))
   }
   exports.default = series(no_2_spaces_purchasingdemand_html)
EN

回答 1

Stack Overflow用户

发布于 2022-04-18 18:48:35

我不知道您正在使用什么来压缩文件,但下面是一个一般的示例:

代码语言:javascript
复制
const gulp = require('gulp');
const filter = require('gulp-filter');
const minify = require('gulp-htmlmin');


gulp.task("preFilterTask", function () {
  
  // return true if want the file in the stream
  const preFilter = filter(function (file) {
    let contents = file.contents.toString();
    return !contents.match('<pre>');
  });

  return gulp.src("./*.html")
  
    .pipe(preFilter)
    .pipe(minify({ collapseWhitespace: true }))
    .pipe(gulp.dest('filtered'));
});

  
gulp.task('default', gulp.series('preFilterTask'));

gulp-htmlmin本身(仅适用于html文件)不会缩小html文件的<pre>...</pre>部分。因此,如果您使用gulp-htmlmin进行html缩小,则不需要过滤那些带有<pre>标记的。

我仍然展示了如何使用gulp-filter插件根据文件内容进行过滤。它可以访问每个文件的内容。如果不希望该文件传递给下一个pipe,则从filter函数返回该文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71913666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档