HTML-Minifier 删除元素属性之间的空格

HTML-Minifier removes the spaces between element's attributes

我已经在我的 html 代码上实施了 html-minifier 来缩小生产环境的 html。在这里,我观察到当我的代码被缩小时,属性之间的 spaces 也被删除。下面是我的原始 HTML 片段和缩小的片段:

原始HTML片段

<!DOCTYPE html>
<html lang="en">
<head>
    <title>ABS Website</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
    <meta name="robots" content="index, follow" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no" />
    <meta name="description" content="Somedescriptions"
    />
    <!-- Bootstrap links -->
    <link rel="stylesheet" href="common/styles/bootstrap/bootstrap.min.css">

缩小的HTML片段

<!DOCTYPE html><html lang=en><title>ABS Website</title><meta charset=utf-8><meta content="IE=edge, chrome=1"http-equiv=X-UA-Compatible><meta content="index, follow"name=robots><meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"name=viewport><meta content="somedescription"name=description><link href=common/styles/bootstrap/bootstrap.min.css rel=stylesheet>

以上是我使用 html-minifier 缩小的许多 html 文件的片段之一,为了进行此缩小,我正在使用 gulp 包 "gulp-htmlmin": "^4.0.0" 下面是我在 .pipe 中标记的要执行 html 缩小的功能:

gulp.task('copy-welcome-page', function () {
    gulp.src(['./index.html', './privacy-policy.html', './pagenotfound.html', './google8dd2827589fa9627.html', './terms-conditions.html'], { "base": "." })
        .pipe(htmlmin({
            collapseWhitespace: true,
            removeComments: true,
            collapseBooleanAttributes: true,
            collapseWhitespace: true,
            decodeEntities: true,
            minifyCSS: true,
            minifyJS: true,
            processConditionalComments: true,
            removeAttributeQuotes: true,
            removeComments: true,
            removeEmptyAttributes: true,
            removeOptionalTags: true,
            removeRedundantAttributes: true,
            removeScriptTypeAttributes: true,
            removeStyleLinkTypeAttributes: true,
            removeTagWhitespace: true,
            sortAttributes: true,
            sortClassName: true,
            trimCustomFragments: true,
            useShortDoctype: true
        }))
        .pipe(gzip({ gzipOptions: { level: 9 }, append: false }))
        .pipe(gulp.dest('build/'));
});

如何解决删除属性之间 space 的问题?

我的预期输出是得到缩小的 html 而没有从元素属性的中间移除 spaces。

我为什么要这个? 我想要这个是因为 w3 的 html 验证器向我抛出错误,如屏幕截图所示,这都是关于属性之间缺少 space:

removeTagWhitespace 选项似乎是导致此问题的原因,请参阅 github 上的此问题:https://github.com/kangax/html-minifier/issues/570

将其设置为 false 应该可以防止这种情况发生。 (它可能会留下比预期更多的空白,这取决于您输入的内容 HTML;但这仍然比使整个文档无效更好。)