Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #!/usr/bin/env node import minimist from 'minimist'; import path from 'path'; import fs from 'fs'; import chokidar from 'chokidar'; import { executeLess } from './executeLess'; import compile, {outputFile} from './compile'; function outputHelp() { console.log('\n Usage: compile-less [options] [--help|h] [--version|v]'); console.log('\n Options:'); console.log(''); console.log(' -v, --version,', 'Show version number'); console.log(' -h, --help,', 'Displays help information.'); console.log(' -d, --dir <dir-path>,', 'Less file directory.'); console.log(' -o, --out <dir-path>,', 'Output directory.'); console.log(' -c, --combine <file-name>,', 'Combine CSS files.'); console.log(' -w, --watch,', 'Watch and compile CSS files.'); console.log(' --exclude-css,', 'Exclude CSS file compilation.'); console.log(' -r, --rm-global,', 'Remove ":global" and ":global(className)".'); exampleHelp(); } const argvs = minimist(process.argv.slice(2)); if (argvs.h || argvs.help) { outputHelp() process.exit(0); } const { version } = require('../package.json'); if (argvs.v || argvs.version) { console.log(`\n compile-less v${version}\n`); process.exit(0); } argvs['rm-global'] = argvs.f = argvs['rm-global'] || argvs.f; argvs.out = argvs.o = argvs.out || argvs.o; argvs.dir = argvs.d = argvs.dir || argvs.d; argvs.watch = argvs.w = argvs.watch || argvs.w; argvs.combine = argvs.c = argvs.combine || argvs.c; if (!argvs.dir || (!argvs.out && !argvs.combine)) { exampleHelp(); process.exit(0); } ;(async () => { try { const inputDir = path.resolve(argvs.dir) if (argvs.watch) { chokidar.watch(inputDir).on('all', chokidarWatch).on('ready', () => { compile(argvs.dir, { out: argvs.out, combine: argvs.combine, rmGlobal: argvs['rm-global'], }); console.log('Watching for file changes....'); }); } else { await compile(argvs.dir, { out: argvs.out, combine: argvs.combine, rmGlobal: argvs['rm-global'], }); } } catch (error) { if (error instanceof TypeError) { console.log(`compile-less: \x1b[31m${error.message}\x1b[0m`); } console.log(error); process.exit(1); } })(); function exampleHelp() { console.log('\n Example:'); console.log(''); console.log(' $\x1b[35m compile-less\x1b[0m \x1b[33m-d src\x1b[0m -o css'); console.log(' $\x1b[35m compile-less\x1b[0m \x1b[33m-d src\x1b[0m -o css --watch'); console.log(' $\x1b[35m compile-less\x1b[0m \x1b[33m-d src\x1b[0m -o css --watch --exclude-css'); console.log(' $\x1b[35m compile-less\x1b[0m \x1b[33m-d src\x1b[0m -o css --combine out/dist.css'); console.log(''); console.log(' Copyright 2021'); console.log('\n'); } async function chokidarWatch(eventName: 'add'|'addDir'|'change'|'unlink'|'unlinkDir', changePath: string, stats?: fs.Stats) { try { const reg = argvs.excludeCss ? /\.(less)$/ : /\.(less|css)$/; if (eventName === 'change' && reg.test(changePath)){ if (argvs.combine) { return compile(argvs.dir, { out: argvs.out, combine: argvs.combine, rmGlobal: argvs['rm-global'], }); } const lessSource = await executeLess(changePath, { rmGlobal: argvs['rm-global'] } ); outputFile( lessSource, path.join(process.cwd(), argvs.dir), path.join(process.cwd(), argvs.out) ); } } catch (error) { console.log('\x1b[31m COMPILE-LESS:CLI:ERR:\x1b[0m', error); } } |