简介
前面两篇讲了css和html的压缩,本篇讲下html文件的压缩,主要用的node插件是html-minifier
,由于网上都是和node结合使用的,没有配置webstorm的教程,所以自己就瞎折腾了一样,搞出来了,碰到了一些坑记录下.
安装
#先安装 node
#略
#安装 html-minifier
npm install -g html-minifier
配置工具类
-
新建一个空目录
-
新建一个package.json文件,内容如下
{ "name": "commpress", "version": "0.0.1", "dependencies": { "html-minifier": "^4.0.0" } }
Shift加右键打开
cmd
,运行npm install
-
新建一个js文件内容如下
var fs = require('fs'); var arguments = process.argv.splice(2); //获取第一个参数 var inputPath = arguments[0]; //获取第二个参数 var outPath = arguments[1]; var minify = require('html-minifier').minify; fs.readFile(inputPath, 'utf8', function (err, data) { if (err) { throw err; } fs.writeFile(outPath, minify(data,{removeComments: true,collapseWhitespace: true,minifyJS:true, minifyCSS:true}),function(){ // console.log('success'); }); });
配置WebStorm
-
自定义监听器
-
配置
# D:\Tools\SmallTools\commpress\html\commpressHtml.js $FileDir$/$FileName$ $FileDir$/../dist/$FileNameWithoutExtension$.html #默认输出到同级的 dist文件夹下 $FileDir$/../dist/$FileNameWithoutExtension$.html
-
效果如下
minify函数参数说明
第一个参数 data: String类型, 一段html代码
第二个参数 options 这里只列了几个常用的
- removeComments 默认值false;是否去掉注释
- collapseWhitespace 默认值false;是否去掉空格
- minifyJS 默认值false;是否压缩html里的js(使用uglify-js进行的压缩)
- minifyCSS 默认值false;是否压缩html里的css(使用clean-css进行的压缩)
FAQ
string的replace未定义
问题 : string的replace未定义
原因 : 参数未指定决定路径找不到该文件
参考链接 :
解决 :