claude-code/Makefile

103 lines
4.4 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.PHONY: help install check-deps install-claude install-mcp-deps \
mcp-context7 mcp-github mcp-firecrawl mcp-supabase mcp-memory \
mcp-sequential-thinking mcp-magic mcp-filesystem mcp-railway \
install-go-tools install-python-tools install-pm2 clean
help:
@echo ""
@echo "Claude Code 工具箱 — 安裝指令"
@echo "=============================="
@echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-28s\033[0m %s\n", $$1, $$2}'
@echo ""
install: check-deps install-mcp-deps ## 一鍵安裝所有依賴
@echo ""
@echo "✅ 全部安裝完成!"
@echo ""
@echo "下一步:"
@echo " 1. 將需要的 MCP server 設定複製到 ~/.claude.json"
@echo " 2. 需要 API Key 的 server 請先設定環境變數"
@echo " 3. 執行 claude 開始使用"
@echo ""
check-deps: ## 檢查前置工具是否已安裝
@echo "🔍 檢查前置工具..."
@command -v node >/dev/null 2>&1 || { echo "❌ 需要 Node.js >= 18"; exit 1; }
@command -v npm >/dev/null 2>&1 || { echo "❌ 需要 npm"; exit 1; }
@command -v git >/dev/null 2>&1 || { echo "❌ 需要 Git"; exit 1; }
@echo " ✓ Node.js $$(node -v)"
@echo " ✓ npm $$(npm -v)"
@echo " ✓ Git $$(git --version | cut -d' ' -f3)"
@command -v claude >/dev/null 2>&1 \
&& echo " ✓ Claude Code CLI" \
|| echo " ⚠️ Claude Code CLI 未安裝(執行 make install-claude"
@echo ""
install-claude: ## 安裝 Claude Code CLI
npm install -g @anthropic-ai/claude-code
install-mcp-deps: ## 安裝所有免費 MCP server 依賴
@echo "📦 預先安裝 MCP server npm 套件..."
@$(MAKE) --no-print-directory mcp-context7
@$(MAKE) --no-print-directory mcp-github
@$(MAKE) --no-print-directory mcp-memory
@$(MAKE) --no-print-directory mcp-sequential-thinking
@$(MAKE) --no-print-directory mcp-magic
@$(MAKE) --no-print-directory mcp-filesystem
@echo ""
@echo "📋 需要 API Key 的 MCP請自行安裝"
@echo " make mcp-firecrawl — FIRECRAWL_API_KEY"
@echo " make mcp-supabase — project-ref"
@echo " make mcp-railway — Railway 登入"
@echo ""
@echo "📋 HTTP 類型不需安裝vercel, cloudflare-*, clickhouse"
mcp-context7: ## Context7即時技術文件查詢
@printf " 📦 context7... " && npx --yes @context7/mcp-server --help >/dev/null 2>&1; echo "✓"
mcp-github: ## GitHub MCP需要 GITHUB_PERSONAL_ACCESS_TOKEN
@printf " 📦 github... " && npx --yes @modelcontextprotocol/server-github --help >/dev/null 2>&1; echo "✓"
mcp-firecrawl: ## Firecrawl MCP需要 FIRECRAWL_API_KEY
@printf " 📦 firecrawl... " && npx --yes firecrawl-mcp --help >/dev/null 2>&1; echo "✓"
mcp-supabase: ## Supabase MCP需要 project-ref
@printf " 📦 supabase... " && npx --yes @supabase/mcp-server-supabase@latest --help >/dev/null 2>&1; echo "✓"
mcp-memory: ## Memory MCP跨 session 記憶)
@printf " 📦 memory... " && npx --yes @modelcontextprotocol/server-memory --help >/dev/null 2>&1; echo "✓"
mcp-sequential-thinking: ## Sequential Thinking MCP鏈式推理
@printf " 📦 sequential-thinking... " && npx --yes @modelcontextprotocol/server-sequential-thinking --help >/dev/null 2>&1; echo "✓"
mcp-magic: ## Magic UI MCPUI 元件)
@printf " 📦 magic... " && npx --yes @magicuidesign/mcp@latest --help >/dev/null 2>&1; echo "✓"
mcp-filesystem: ## Filesystem MCP檔案系統操作
@printf " 📦 filesystem... " && npx --yes @modelcontextprotocol/server-filesystem --help >/dev/null 2>&1; echo "✓"
mcp-railway: ## Railway MCP部署管理
@printf " 📦 railway... " && npx --yes @railway/mcp-server --help >/dev/null 2>&1; echo "✓"
install-go-tools: ## Go 輔助工具golangci-lint, deadcode
@command -v go >/dev/null 2>&1 || { echo "❌ 需要先安裝 Go"; exit 1; }
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go install golang.org/x/tools/cmd/deadcode@latest
@echo "✅ Go 工具安裝完成"
install-python-tools: ## Python 輔助工具ruff, mypy, bandit, black
@command -v python3 >/dev/null 2>&1 || { echo "❌ 需要先安裝 Python 3"; exit 1; }
pip3 install ruff mypy bandit black isort
@echo "✅ Python 工具安裝完成"
install-pm2: ## PM2 程序管理器
npm install -g pm2
@echo "✅ PM2 安裝完成"
clean: ## 清理 npx 快取
npm cache clean --force 2>/dev/null || true
@echo "✅ 清理完成"