generateProject static method
프로젝트 구조 생성
Implementation
static Future<void> generateProject({
required String targetPath,
required String projectName,
required String packageId,
required List<String> platforms,
required Logger logger,
}) async {
final generator = ProjectTemplateGenerator();
final packageName = _packageIdToPackageName(packageId);
final hasWeb = platforms.contains('web');
try {
// 1. pubspec.yaml 생성
logger.detail('pubspec.yaml 생성 중...');
await generator._createPubspec(targetPath, packageName, logger);
// 2. lib/main.dart 생성
logger.detail('lib/main.dart 생성 중...');
await generator._createMainDart(targetPath, packageName, hasWeb, logger);
// 3. lib/mobile 폴더 구조 생성
logger.detail('lib/mobile 폴더 구조 생성 중...');
await generator._createMobileStructure(targetPath, packageName, logger);
// 4. lib/web 폴더 구조 생성 (web이 선택된 경우)
if (hasWeb) {
logger.detail('lib/web 폴더 구조 생성 중...');
await generator._createWebStructure(targetPath, packageName, logger);
}
// 5. test 폴더 생성
logger.detail('test 폴더 생성 중...');
await generator._createTestStructure(targetPath, logger);
logger.success('✅ 프로젝트 템플릿 생성 완료');
} catch (e, stackTrace) {
logger.err('❌ 프로젝트 템플릿 생성 중 오류 발생: $e');
logger.detail('스택 트레이스: $stackTrace');
rethrow;
}
}