UNPKG

@joker.front/cli

Version:

The Next-Generation Front-End Toolchain: Swift, Efficient, and Adaptive.

118 lines (117 loc) 3.5 kB
import { logger } from "./logger"; import { ServerOptions } from "./server"; import { Plugin } from "./plugin"; import { BuildOptions } from "./build"; import { InternalResolveOptions, ResolveFn, ResolveOptions } from "./plugins/resolve"; import { DepHandler } from "./deps"; import { PackageCache } from "./package"; import { CSSOptions } from "./plugins/css"; export declare const DEFAULT_SERVER_PORT = 5858; export declare const DEFAULT_WS_PORT = 25679; export declare const FILE_SUFFIX = "joker"; export declare const ID_PREFIX = "/@id/"; export declare const FS_PREFIX = "/@fs/"; export declare const NULL_BYTE_PLACHOLDER = "__J00J__"; export declare const CLIENT_PLUBLIC_PATH = "/@joker.front/client"; export declare const INTERNAL_REQUEST: string[]; export declare const CLIENT_ENTRY: string; export declare const CLIENT_DIR: string; export declare const version: any; export declare const ESBUILD_MODULES_TARGET: string[]; export declare const DEFAULT_EXTENSIONS: string[]; export declare const DEFAULT_MAIN_FIELDS: string[]; export interface Config { /** * Project root directory * @default process.cwd() */ root?: string; /** * Public base path when serving in production * @default '/' */ base?: string; /** * Execution mode * - 'server': Run development server only * - 'build': Build project without starting server * @default 'server' */ command?: "server" | "build"; /** * Environment mode (corresponds to process.env.NODE_ENV) * @default 'development' */ mode?: string; /** * Development server configuration */ server?: ServerOptions; /** * Build configuration */ build?: BuildOptions; /** * Cache directory for dependencies and intermediate files * @default 'node_modules/.joker' */ cacheDir?: string; /** * Public directory for static assets that are copied directly to output * Set to false to disable * @default 'public' */ publicDir?: string | false; /** * Logging level * @default 'info' */ logLevel?: logger.leve; /** * Enable esbuild for faster builds * @default true */ esbuild?: boolean; /** * Additional file extensions to treat as assets */ assetsInclude?: string[]; /** * Plugins to extend the build system */ plugins?: Plugin[] | Array<Plugin[]>; /** * Module resolution options */ resolve?: ResolveOptions; /** * Global definitions available in source code via import.meta.define */ define?: Record<string, any>; /** * CSS processing options */ css?: CSSOptions; } export interface ResolvedConfig extends Required<Omit<Config, "plugins">> { createResolver: (option: Partial<InternalResolveOptions>) => ResolveFn; /** * 引用管理 */ depHandler: DepHandler; /** * package.json 解析缓存 */ packageCache: PackageCache; build: Required<BuildOptions>; configPath?: string; /** * packageJson 文件地址 */ pkgPath?: string; plugins: Plugin[]; } export declare function resolveCliConfig(cliConfig: Config, command: Config["command"], configPath?: string | false): Promise<ResolvedConfig>; export declare function getConfigHash(config: ResolvedConfig): string; export declare const ASSET_TYPES: string[]; export declare function getClinetImport(config: ResolvedConfig): string;