为什么npm库不是函数?

问题描述 投票:0回答:2

用于 html minify 的 npm 库存在问题。我下载并声明了一个库

import htmlmin from 'html-minifier'; 

但是当我尝试运行 gulp 任务时

export const html = () => {
  return gulp.src("source/*.html")
    .pipe(htmlmin({ collapseWhitespace: true }))
    .pipe(gulp.dest("build"));
}

但出现错误

TypeError: htmlmin is not a function

我很确定没有语法错误,但我不知道问题出在哪里。

我尝试了不同的库和更旧的node.js,但我仍然遇到同样的问题

javascript npm gulp
2个回答
1
投票

请查看库文档

有一个关于如何通过 gulp 使用该库的精确示例:

const { src, dest, series } = require('gulp');
const htmlMinify = require('html-minifier');

const options = {
  includeAutoGeneratedTags: true,
  removeAttributeQuotes: true,
  removeComments: true,
  removeRedundantAttributes: true,
  removeScriptTypeAttributes: true,
  removeStyleLinkTypeAttributes: true,
  sortClassName: true,
  useShortDoctype: true,
  collapseWhitespace: true
};

function html() {
  return src('app/**/*.html')
    .on('data', function(file) {
      const buferFile = Buffer.from(htmlMinify.minify(file.contents.toString(), options))
      return file.contents = buferFile
    })
    .pipe(dest('build'))
}

exports.html = series(html)

1
投票

在我看到这个库的用法后,为 gulp gulp-htmlmin 安装了特殊库后,它就起作用了

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

gulp.task('minify', () => {
  return gulp.src('src/*.html')
    .pipe(htmlmin({ collapseWhitespace: true }))
    .pipe(gulp.dest('dist'));
});
© www.soinside.com 2019 - 2024. All rights reserved.