写了一个压缩html的模块htmlmin
本来是不打算写这个模块的,因为有现成的html-minifier了,但是我在使用的时候发现集成它,很困难,总是出错,并且它的功能不够单一,还有lint功能,因为看到它有一个html parser,那就用这个html parser写一个压缩器。
它是怎么做的
htmlmin是先把html parser下载下来,使用它的方法HTMLParser
方法,下载html-minifier的测试文件,写代码跑过html-minifier的测试,参考cssmin的cssbin
的代码,搞了一下命令行下的功能,然后就做完了。
按照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能青出于蓝而胜于蓝