node-minify-tag
v0.0.1
Published
You can use this code to minify your css and js code between begin and end comment tags in a given html file.
Downloads
63
Maintainers
Readme
minify-tag
Minifier of js, css, html.
It is a wrapper for the gorgeous node-minify.
You can use it programmatic as script or as CLI.
Advantage / Motivation: Instead of separate mapping files and html code the needed informations can be set with help of html comments:
<html>
<head>
<!-- node-minify-tag-glob( {"htmlOut": "_index1.prod.html"} ) -->
...
<title>index1</title>
...
<!-- node-minify-tag( {"fileOut":"_abc1.min.css", "type": "no-compress"} ) -->
<link href="css/base.css" rel="stylesheet">
<link href="css/base2.css" rel="stylesheet">
<!-- node-minify-tag-end -->
</head>
<body>
...
<!-- node-minify-tag( {"fileOut":"_abc.min.js", "type": "no-compress"} ) -->
<script src="js/jquery-2.0.3.js"></script>
<script src="js/base.js"></script>
<script src="js/base2.js"></script>
<!-- node-minify-tag-end -->
...
Usage
As script :
var minifyTag = require('node-minify-tag');
// HTML in and out file are explicitly specified:
// No need for 'node-minify-tag-glob' tag:
minifyTag.minify({
relativeBaseDir: "demo",
htmlIn: "abc.dev.html",
htmlOut: "__abc.prod.html",
encoding: "utf8",
mergeNgIncludes: true
},
function (err, msg){
if (err) return reject(err);
resolve(msg);
});
// Glob mode:
// minifyByGlob walk through the sub directories
// and looks for all file matching 'filePattern'.
// The 'htmlOut' file for each 'htmlIn' must be specified
// in an 'node-minify-tag-glob' comment tag
minifyTag.minifyByGlob({
relativeBaseDir: "../../Xy/",
filePattern: "**/*.dev.html",
encoding: "utf8",
mergeNgIncludes: true
},
function (err, msg){
if (err) return reject(err);
resolve(msg);
});
HTML comment attributes
Comment tag | Corresponding comment tag | Options -------------------------------- | ---------------------------|--------- node-minify-tag( options ) | node-minify-tag-end | see below node-minify-tag-glob( options ) | none | {"htmlOut": "sample.prod.html"}
Options node-minify-tag
Key | Possible values | Action | File type -------|-----------------------|---------|---------- type | 'no-compress' | concatenation of files | JS / CSS type | 'gcc' | Google Closure Compiler | JS type | 'yui-js' | YUI Compressor | JS type | 'yui-css' | YUI Compressor | CSS type | 'uglifyjs' | UglifyJS | JS type | 'sqwish' | Sqwish | CSS type | 'clean-css' | Clean-css | CSS type | 'csso' | CSSO | CSS fileOut| name of generated (compressed) html or CSS file | - | -
Options node-minify-tag-glob
Key | Possible values | Example ---------|--------------------------------------|------------------- htmlOut | name of generated html file | 'index.prod.html'
As CLI
node node_modules/node-minify-tag/index.js -h
// Explicit mode:
node node_modules/node-minify-tag/index.js -d test/demo/ -i abc.html -o __abc.prod.html
// glob mode:
node node_modules/node-minify-tag/index.js -g -d test/demo/ -p **/*.dev.html
Information about glob file pattern can be found here: Glob Primer.