UNPKG

cssnano-cli

Version:

A CLI for modular minifier cssnano.

60 lines (52 loc) 1.39 kB
#!/usr/bin/env node 'use strict'; var fs = require('fs'); var nano = require('cssnano'); var read = require('read-file-stdin'); var write = require('write-file-stdout'); var opts = require('minimist')(process.argv.slice(2), { alias: { h: 'help', s: 'sourcemap', v: 'version' }, boolean: 's' }); if (opts.version) { return console.log( 'cssnano v' + require('cssnano/package.json').version, '(cli v' + require('./package.json').version + ')' ); } var file = opts._[0]; var out = opts._[1]; if (file === 'help' || opts.help) { return fs.createReadStream(__dirname + '/usage.txt') .pipe(process.stdout) .on('close', function () { process.exit(1); }); } read(file, function (err, buf) { if (err) { throw err; } if (file) { opts.from = file; } if (out) { opts.to = out; } nano.process(String(buf), opts).then(function (result) { write(out, result.css); if (opts.map && opts.to) { fs.writeFile(opts.to + '.map', result.map.toString()); } }).catch(function (err) { if (err.message && typeof err.showSourceCode === 'function') { console.error(err.message); console.error(err.showSourceCode()); } else { console.error(err); } process.exit(1); }); });