🎨 Optimize the use of CLI.

This commit is contained in:
Tw93
2023-06-22 20:56:15 +08:00
parent 22e3efea49
commit e1cd40277f
9 changed files with 79 additions and 49 deletions

View File

@@ -1,3 +1,4 @@
import ora from "ora";
import path from 'path';
import fsExtra from "fs-extra";
import prompts from 'prompts';
@@ -39,6 +40,8 @@ export default abstract class BaseBuilder {
}
protected async runBuildCommand(directory: string, command: string) {
const spinner = ora('Building...').start();
setTimeout(() => spinner.succeed(), 5000);
const isChina = await isChinaDomain("www.npmjs.com");
if (isChina) {
logger.info("Located in China, using npm/Rust CN mirror.");

View File

@@ -3,19 +3,20 @@ import MacBuilder from './MacBuilder';
import WinBuilder from './WinBuilder';
import LinuxBuilder from './LinuxBuilder';
import { IS_MAC, IS_WIN, IS_LINUX } from '@/utils/platform';
const { platform } = process;
const buildersMap: Record<string, new () => BaseBuilder> = {
darwin: MacBuilder,
win32: WinBuilder,
linux: LinuxBuilder,
};
export default class BuilderProvider {
static create(): BaseBuilder {
if (IS_MAC) {
return new MacBuilder();
const Builder = buildersMap[platform];
if (!Builder) {
throw new Error('The current system is not supported!');
}
if (IS_WIN) {
return new WinBuilder();
}
if (IS_LINUX) {
return new LinuxBuilder();
}
throw new Error('The current system is not supported!');
return new Builder();
}
}