我试图使用GULP4压缩一系列的HTML和PHP文件。我遇到的一个问题是,一些文件包含一个<pre>标记。我不想压缩这些文件,因为它会破坏该文件。是否有一种使用GULP的方法,我可以评估一个文件是否包含字符串<pre>,如果包含,避免对该文件运行压缩?这是我的相关代码:
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)发布于 2022-04-18 18:48:35
我不知道您正在使用什么来压缩文件,但下面是一个一般的示例:
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函数返回该文件。
https://stackoverflow.com/questions/71913666
复制相似问题