@tarojs/cli
Version:
cli tool for taro
66 lines (65 loc) • 2.16 kB
TypeScript
import { CompilerType, CSSType, FrameworkType, NpmType } from '@tarojs/binding';
import Creator from './creator';
import type { ITemplates } from './fetchTemplate';
export interface IProjectConf {
projectName: string;
projectDir: string;
npm: NpmType;
templateSource: string;
clone?: boolean;
template: string;
description?: string;
typescript?: boolean;
css: CSSType;
date?: string;
src?: string;
sourceRoot?: string;
env?: string;
autoInstall?: boolean;
hideDefaultTemplate?: boolean;
framework: FrameworkType;
compiler?: CompilerType;
}
type CustomPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
type IProjectConfOptions = CustomPartial<IProjectConf, 'projectName' | 'projectDir' | 'template' | 'css' | 'npm' | 'framework' | 'templateSource'>;
interface AskMethods {
(conf: IProjectConfOptions, prompts: Record<string, unknown>[], choices?: ITemplates[]): void;
}
export default class Project extends Creator {
rootPath: string;
conf: IProjectConfOptions;
constructor(options: IProjectConfOptions);
init(): void;
create(): Promise<void>;
ask(): Promise<{
projectName: string;
projectDir: string;
npm: NpmType;
templateSource: string;
clone?: boolean | undefined;
template: string;
description?: string | undefined;
typescript?: boolean | undefined;
css: CSSType;
date?: string | undefined;
src?: string | undefined;
sourceRoot?: string | undefined;
env?: string | undefined;
autoInstall?: boolean | undefined;
hideDefaultTemplate?: boolean | undefined;
framework: FrameworkType;
compiler?: CompilerType | undefined;
}>;
askProjectName: AskMethods;
askDescription: AskMethods;
askTypescript: AskMethods;
askCSS: AskMethods;
askCompiler: AskMethods;
askFramework: AskMethods;
askTemplateSource: AskMethods;
askTemplate: AskMethods;
askNpm: AskMethods;
fetchTemplates(answers: IProjectConf): Promise<ITemplates[]>;
write(cb?: () => void): void;
}
export {};