CLI for UnoCSS that enables CSS generation from utility classes in traditional backends and static environments.
npx @tessl/cli install tessl/npm-unocss--cli@66.5.0@unocss/cli is a command-line interface for UnoCSS, providing CSS generation from utility classes in traditional backends and static environments. It offers both CLI and programmatic APIs with file watching capabilities, making it ideal for projects that need atomic CSS generation without build-time integration.
npm install @unocss/cliMain functionality:
import {
build,
resolveOptions,
type CliOptions,
type ResolvedCliOptions
} from "@unocss/cli";Additional functionality (require specific import paths or may not be directly exported):
// These functions are not directly exported from main entry point
// They may be available via separate build outputs or internal modules
// import { startCli } from "@unocss/cli/cli-start";
// import { PrettyError, handleError } from "@unocss/cli/errors";
// import { getWatcher } from "@unocss/cli/watcher";
// import { defaultConfig } from "@unocss/cli/config";For CommonJS:
const { build, resolveOptions } = require("@unocss/cli");
// Additional functions may not be directly available from main export# Generate CSS from HTML files
unocss "src/**/*.html" -o dist/styles.css
# Watch mode for development
unocss "src/**/*.html" -o dist/styles.css --watch
# Output to stdout
unocss "src/**/*.html" --stdout
# Use custom config
unocss "src/**/*.html" -c uno.config.ts --watchimport { build } from "@unocss/cli";
// Basic CSS generation
await build({
patterns: ["src/**/*.html"],
outFile: "dist/styles.css",
minify: true,
});
// Watch mode programmatically
await build({
patterns: ["src/**/*.html", "src/**/*.js"],
outFile: "dist/styles.css",
watch: true,
preflights: true,
});@unocss/cli is built around several key components:
Full-featured CLI for CSS generation with extensive configuration options including watch mode, custom output paths, and transformer support.
function startCli(
cwd?: string,
argv?: string[],
options?: CliOptions
): Promise<void>;Core build functionality for CSS generation that can be integrated into scripts and build processes.
function build(options: CliOptions): Promise<void>;
function resolveOptions(options: CliOptions): Promise<ResolvedCliOptions>;
interface CliOptions {
cwd?: string;
patterns?: Array<string>;
outFile?: string;
watch?: boolean;
config?: string;
stdout?: boolean;
writeTransformed?: boolean;
preflights?: boolean;
minify?: boolean;
}
type ResolvedCliOptions = MarkRequired<CliOptions, 'patterns'>;Development-focused file watching system for automatic CSS regeneration when source files change.
function getWatcher(options?: CliOptions): Promise<FSWatcher>;Specialized error handling for CLI operations with user-friendly messages and proper exit codes.
class PrettyError extends Error {
constructor(message: string);
}
function handleError(error: unknown): void;Default UnoCSS configuration optimized for CLI usage with build environment settings and preset configurations.
const defaultConfig: UserConfig;The default configuration includes:
'build' for production-optimized CSS generation@unocss/preset-uno for Tailwind-compatible utilitiesUsage Examples:
import { defaultConfig } from "@unocss/cli";
// Use default config as base
const customConfig = {
...defaultConfig,
theme: {
colors: {
primary: '#ff0000'
}
}
};
// Access default settings
console.log(defaultConfig.envMode); // 'build'
console.log(defaultConfig.presets); // [presetUno()]// External types from dependencies
import type { FSWatcher } from 'chokidar';
import type { UserConfig } from '@unocss/core';
// Internal utility type for marking properties as required (not exported)
declare type MarkRequired<T, RK extends keyof T> = Exclude<T, RK> & Required<Pick<T, RK>>;
interface CliOptions {
/** Working directory for file operations */
cwd?: string;
/** Glob patterns for files to process */
patterns?: Array<string>;
/** Output CSS file path */
outFile?: string;
/** Enable file watching mode */
watch?: boolean;
/** Path to UnoCSS configuration file */
config?: string;
/** Output CSS to stdout instead of file */
stdout?: boolean;
/** Write transformed source files back to disk */
writeTransformed?: boolean;
/** Enable CSS preflights */
preflights?: boolean;
/** Minify generated CSS output */
minify?: boolean;
}
type ResolvedCliOptions = MarkRequired<CliOptions, 'patterns'>;