UNPKG

@unizap/unicss

Version:

Unicss: Build sleek interfaces straight from your markup. Fast, modern, utility-first CSS framework for rapid UI development.

56 lines (50 loc) 1.52 kB
#!/usr/bin/env node const path = require("path"); const fs = require("fs"); const generateCSS = require("../dist/index.js"); const args = process.argv.slice(2); let outFile = "style/unicss.css"; let watch = false; let skipBase = false; let content = null; for (let i = 0; i < args.length; i++) { if ((args[i] === "-o" || args[i] === "--output") && args[i + 1]) { outFile = args[i + 1]; i++; } if (args[i] === "-w" || args[i] === "--watch") { watch = true; } if (args[i] === "--skip-base") { skipBase = true; } if ((args[i] === "-c" || args[i] === "--content") && args[i + 1]) { // Support multiple patterns separated by comma or multiple --content flags const patterns = args[i + 1].split(",").map(p => p.trim()); content = content ? [...content, ...patterns] : patterns; i++; } } function run() { const css = generateCSS({ skipBase, content }); const outDir = path.dirname(outFile); if (!fs.existsSync(outDir)) { fs.mkdirSync(outDir, { recursive: true }); } fs.writeFileSync(outFile, css); console.log(`Unicss generated at ${outFile}`); } run(); if (watch) { const chokidar = require("chokidar"); // Watch content patterns or default patterns, plus the config const watchPatterns = content || ["**/*.{js,jsx,ts,tsx,html,vue}"]; const watcher = chokidar.watch([ ...watchPatterns, "unicss.config.js" ], { ignoreInitial: true }); watcher.on("all", () => { console.log("Change detected. Regenerating Unicss..."); run(); }); }