first commit
This commit is contained in:
95
main.py
Normal file
95
main.py
Normal file
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
前后端分离项目初始化脚本 - 主程序
|
||||
"""
|
||||
|
||||
import sys
|
||||
from utils import print_banner, get_project_name, select_frontend, select_backend, select_use_tailwind
|
||||
from directory import create_directory_structure
|
||||
from frontend import init_react_project, init_vue_project, setup_tailwind
|
||||
from backend import (
|
||||
init_golang_project,
|
||||
init_gin_project,
|
||||
init_flask_project,
|
||||
init_fastapi_project,
|
||||
init_django_project,
|
||||
init_spring_project,
|
||||
init_express_project,
|
||||
init_nestjs_project
|
||||
)
|
||||
from scripts import create_bat_scripts
|
||||
|
||||
|
||||
def main():
|
||||
"""主函数"""
|
||||
print_banner()
|
||||
|
||||
# 获取项目信息
|
||||
project_name = get_project_name()
|
||||
frontend_type = select_frontend()
|
||||
use_tailwind = select_use_tailwind()
|
||||
backend_type = select_backend()
|
||||
|
||||
# 创建目录结构
|
||||
project_root, frontend_dir, backend_dir = create_directory_structure(project_name)
|
||||
|
||||
# 初始化前端项目
|
||||
if frontend_type == "react":
|
||||
init_react_project(frontend_dir, project_name)
|
||||
elif frontend_type == "vue":
|
||||
init_vue_project(frontend_dir, project_name)
|
||||
|
||||
# 配置 Tailwind CSS
|
||||
if use_tailwind:
|
||||
setup_tailwind(frontend_dir, frontend_type)
|
||||
|
||||
# 初始化后端项目
|
||||
if backend_type == "golang":
|
||||
init_golang_project(backend_dir, project_name)
|
||||
elif backend_type == "gin":
|
||||
init_gin_project(backend_dir, project_name)
|
||||
elif backend_type == "flask":
|
||||
init_flask_project(backend_dir, project_name)
|
||||
elif backend_type == "fastapi":
|
||||
init_fastapi_project(backend_dir, project_name)
|
||||
elif backend_type == "django":
|
||||
init_django_project(backend_dir, project_name)
|
||||
elif backend_type == "spring":
|
||||
init_spring_project(backend_dir, project_name)
|
||||
elif backend_type == "express":
|
||||
init_express_project(backend_dir, project_name)
|
||||
elif backend_type == "nestjs":
|
||||
init_nestjs_project(backend_dir, project_name)
|
||||
|
||||
# 创建 BAT 脚本
|
||||
create_bat_scripts(project_root, project_name, frontend_type, backend_type)
|
||||
|
||||
# 完成
|
||||
print("\n" + "=" * 60)
|
||||
print("🎉 项目初始化完成!")
|
||||
print("=" * 60)
|
||||
print(f"\n📁 项目位置: {project_root}")
|
||||
print(f" ├── {project_name}-frontend ({frontend_type.upper()})")
|
||||
print(f" ├── {project_name}-backend ({backend_type.upper()})")
|
||||
print(f" ├── 开启前端.bat")
|
||||
print(f" ├── 开启后端.bat")
|
||||
print(f" └── 构建前端.bat")
|
||||
print("\n💡 使用说明:")
|
||||
print(f" 1. 双击 '开启前端.bat' 启动前端开发服务器")
|
||||
print(f" 2. 双击 '开启后端.bat' 启动后端服务")
|
||||
print(f" 3. 双击 '构建前端.bat' 构建前端生产版本")
|
||||
print("\n✨ 祝开发愉快!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
print("\n\n❌ 操作已取消")
|
||||
sys.exit(0)
|
||||
except Exception as e:
|
||||
print(f"\n❌ 发生错误: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user