create-palladium
Version:
A modern CLI tool to create Vite + React + TypeScript projects with various configurations
50 lines (39 loc) • 1.4 kB
JavaScript
import figlet from "figlet";
import chalk from "chalk";
import ora from "ora";
import { runPrompt } from "../dist/prompts/prompt.js";
import { createProject } from "../dist/generators/createProject.js";
import { logger } from "../dist/utils/logger.js";
const main = async () => {
// ASCII 아트 표시
console.log(chalk.cyan(figlet.textSync("Palladium", { horizontalLayout: "full" })));
console.log(chalk.gray("Vite + React + TypeScript 프로젝트 생성기\n"));
try {
// 1) 사용자 입력 받기
const answers = await runPrompt();
// 2) 프로젝트 생성 시작
const spinner = ora("프로젝트 생성 중...").start();
await createProject(answers);
spinner.succeed("프로젝트 생성 완료!");
// 3) 성공 메시지 표시
logger.showSuccessMessage(answers.projectName, answers.runDev);
} catch (err) {
// 4) 에러 처리
logger.showErrorMessage(err instanceof Error ? err : new Error(String(err)));
process.exit(1);
}
};
// 전역 에러 핸들러
process.on('unhandledRejection', (reason, promise) => {
logger.error('Unhandled Rejection at:');
logger.error(`Promise: ${promise}`);
logger.error(`Reason: ${reason}`);
process.exit(1);
});
process.on('uncaughtException', (error) => {
logger.error('Uncaught Exception:');
logger.error(error.message);
process.exit(1);
});
main();