node-minify-tag

0.0.1 • Public • Published

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.

Package Sidebar

Install

npm i node-minify-tag

Weekly Downloads

2

Version

0.0.1

License

MIT

Last publish

Collaborators

  • krocon