0

我在 gulp 中使用 html-minifier 来缩小我的 html 文件。但是,没有type="text/javascript"的内联脚本标签永远不会被处理。

我一直在文档中搜索,但即使是带有minifyJS的选项processScripts也无法解决它。

我的脚本标签没有类型,因为在 HTML5 中没有必要(或者我错了?)。我错过了什么?

脚本.js:

const gulp = require('gulp');
const htmlmin = require('gulp-htmlmin');

gulp.src('lib/*.html')
    .pipe(htmlmin({
        collapseWhitespace: true,
        removeComments: true,
        minifyCSS: true,
        minifyJS: true,
        removeScriptTypeAttributes: true,
        processScripts: [undefined, null, ""],
    }))
    // .pipe(htmlmin({
        // collapseWhitespace: true,
        // minifyJS: true,
    // }))
    .pipe(gulp.dest('dist'));

编辑

直接在字符串中运行 html-minifier 可以正确地缩小它。因此,某种错误似乎阻止了传递给 gulp 的选项到达内部使用的 html-minifier。

4

1 回答 1

0

我在一个示例 html 页面上运行了以下 gulp 项目,该页面具有内联脚本和 html,并将参数设置为minifyJS:true它所有工作。您肯定在查看正确的参数。可能是您传递配置参数的方式未被识别吗?希望示例 gulpfile 代码对您有所帮助。

const gulp = require('gulp');
const htmlmin = require('gulp-htmlmin');
 
function defaultTask() {
        return gulp.src('src/*.html')
          .pipe(htmlmin({ 
              collapseWhitespace: true,
              minifyJS:true }))
          .pipe(gulp.dest('dist'));
  }
  
  exports.default = defaultTask;
于 2021-02-12T19:43:35.153 回答