cssnano-cli
Version:
A CLI for modular minifier cssnano.
60 lines (52 loc) • 1.39 kB
JavaScript
;
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);
});
});