@joker.front/cli
Version:
The Next-Generation Front-End Toolchain: Swift, Efficient, and Adaptive.
122 lines (121 loc) • 3.66 kB
TypeScript
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;