UNPKG

minify-all-cli

Version:

Minify All JS, CSS and HTML files in a folder by using UglifyJS, CSSNano and HTMLMinifier with an option to gzip all the files as well.

45 lines (36 loc) 1.1 kB
#! /usr/bin/env node //"use strict"; const fs = require("fs"); const path = require("path"); const { createGzip } = require("zlib"); const { pipeline } = require("stream"); const { createReadStream, createWriteStream } = require("fs"); const { promisify } = require("util"); const pipe = promisify(pipeline); const isBlank = function (obj) { return (!obj || obj.trim() === ""); }; const getAllFiles = function(dirPath, arrayOfFiles) { files = fs.readdirSync(dirPath); arrayOfFiles = arrayOfFiles || []; files.forEach(function(file) { if (fs.statSync(dirPath + path.sep + file).isDirectory()) { arrayOfFiles = getAllFiles(dirPath + path.sep + file, arrayOfFiles); } else { arrayOfFiles.push(path.join(dirPath, path.sep, file)); } }) return arrayOfFiles; } async function doGzip(input, output) { const gzip = createGzip(); const source = createReadStream(input); const destination = createWriteStream(output); await pipe(source, gzip, destination); } module.exports = { "isBlank": isBlank, "doGzip": doGzip, "getAllFiles": getAllFiles };