写了一个压缩html的模块htmlmin


本来是不打算写这个模块的,因为有现成的html-minifier了,但是我在使用的时候发现集成它,很困难,总是出错,并且它的功能不够单一,还有lint功能,因为看到它有一个html parser,那就用这个html parser写一个压缩器。

它是怎么做的

htmlmin是先把html parser下载下来,使用它的方法HTMLParser方法,下载html-minifier的测试文件,写代码跑过html-minifier的测试,参考cssmincssbin的代码,搞了一下命令行下的功能,然后就做完了。

按照npm publish的指导完成发布模块。

写得比较快,代码基本上没有做任何优化,如果后续有人用或者我自己用的时候碰到问题了,会再去优化

怎么使用

直接在命令行下使用:

npm install -g htmlmin

安装完成后,可以看一下帮助,基本的选项已经可以去掉空格换行,压缩css和js

htmlmin --help

在代码里使用,首先需要安装模块和保存依赖

npm install --save htmlmin

然后在你的nodejs程序里使用

var htmlmin = require('htmlmin')
htmlmin(htmlString, options)

其中options是一个对象,可以接收的参数是:

  • jsmin: 默认值为 true, 压缩页面内script标签里js以及on*属性里的js代码
  • cssmin: 默认值为 true, 压缩页面内style标签里css以及style属性里的代码
  • caseSensitive: 默认值为 true, 大小敏感,标签及标签的属性会保留它本来的大小写,如果为false,会转换为小写
  • removeComments: 默认值为 true, 除了注释的开头加了!都会被删除
  • removeIgnored: 默认值为 false, 删除不认识的标签,比如<% xx %>
  • removeOptionalTags: 默认值为 false, 删除结束标签,有些标签是可以不加结束标签的
  • collapseWhitespace: 默认值为 false, 删除标签内内容的空格,慎用,有可能会造成内容丢失

希望htmlmin能青出于蓝而胜于蓝


推荐文章