UNPKG

@joker.front/cli

Version:

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

122 lines (121 loc) 3.66 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 { /** * 项目文根 * @default process.cwd() */ root?: string; /** * 输出运行时公共文根 * @default '/' */ base?: string; /** * 运行模式 * server服务一定是起服务,不做构建 * build 只做构建,一定不做服务代理 * @default 'server' */ command?: "server" | "build"; /** * 对应process.env.NODE_ENV * @default 'development' */ mode?: string; /** * 开发模式下的Server配置 */ server?: ServerOptions; /** * 构建配置(Server+Build模式下文件构建配置) */ build?: BuildOptions; /** * 定义缓存目录,存放dep依赖缓存等文件 * 默认为package.json所在文件夹下的node_modules/.joker * * @default 'node_modules/.joker' */ cacheDir?: string; /** * 默认文件夹,可以配置static静态文件、公共脚本、公共资源等路径文件夹 * 此文件内的资源不会被转换编译,仅在build时复制到dist目录下 * 配置成false代表不启用public * * @default 'public' */ publicDir?: string | false; /** * 日志输出等级 * @default 'info' */ logLeve?: logger.leve; /** * 是否采用esbuild * @default 'true' */ esbuild?: boolean; /** * 需要额外处理的资源,默认已经支持大部分资源格式 */ assetsInclude?: string[]; /** * 插件 */ plugins?: Plugin[] | Array<Plugin[]>; /** * 配置解析器 */ resolve?: ResolveOptions; /** * 全局定义,在开发侧通过import.meta.define.xxx进行使用 */ define?: Record<string, any>; /** * CSS配置 */ 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;