5.0 KiB
5.0 KiB
Technology Stack
Analysis Date: 2026-05-07
Languages
Primary:
- TypeScript 5 - All application code, types, and configuration
- React 19 - UI components and application logic (via Next.js)
- CSS / Tailwind - Styling
Secondary:
- JavaScript - Configuration files, optional runtime
Runtime
Environment:
- Node.js 22.10.0 (Alpine Linux) - as specified in Dockerfile
Package Manager:
- Yarn (primary for Docker builds; npm/pnpm also supported locally)
- Lockfiles:
package-lock.json,pnpm-lock.yaml,yarn.lockpresent - Registry: npm registry (Dockerfile uses Taobao mirror
registry.npmmirror.comfor builds)
Frameworks
Core:
- Next.js 15.2.4 - App Router, React Server Components, standalone output mode
- Configuration:
next.config.mjs - Build output: standalone (optimized for Docker)
- Experimental features: webpackBuildWorker, parallelServerBuildTraces, parallelServerCompiles
- Configuration:
Styling:
- Tailwind CSS 3.4.17 - Utility-first CSS framework
- Animation plugin:
tailwindcss-animate1.0.7 - Config:
tailwind.config.ts - CSS Variables enabled for theming (light/dark mode)
- Animation plugin:
UI Components:
- Radix UI (15+ component libraries) - Headless, accessible primitives
- Core: accordion, alert-dialog, avatar, checkbox, dialog, dropdown-menu, label, popover, select, tabs, toast, tooltip, etc.
- shadcn/ui style components (local copies, not npm packages)
- Config:
components.json - Aliases:
@/components,@/components/ui,@/lib,@/hooks
Form Management:
- React Hook Form (latest) - Lightweight form state management
- Zod (latest) - Schema validation and type-safe form schemas
- @hookform/resolvers (latest) - Integration between React Hook Form and validation libraries
Data Visualization:
- Recharts (latest) - React charting library built on D3.js
- Used for dashboard analytics/metrics visualization
Notifications & Toasts:
- Sonner 1.7.1 - Toast notification library
- Radix UI Toast 1.2.4 - Low-level toast primitive (wrapped by use-toast)
Navigation & Theming:
- next-themes 0.4.4 - Dark/light mode switching
- lucide-react 0.454.0 - Icon library (240+ icons)
HTTP Client:
- Axios 1.9.0 - Promise-based HTTP client
- Configured with request/response interceptors in
lib/api/client.ts - Automatic token injection via Authorization header
- 401 error handling (token expiry redirect to /login)
- Configured with request/response interceptors in
Utilities:
- js-cookie 3.0.5 - Cookie management (auth token persistence)
- date-fns 4.1.0 - Date utility library
- class-variance-authority 0.7.1 - Component variant utilities
- clsx 2.1.1 - Conditional className merging
- tailwind-merge 2.5.5 - Tailwind class conflict resolution
- cmdk 1.0.4 - Command palette component
- embla-carousel-react 8.5.1 - Carousel component
- react-day-picker 8.10.1 - Calendar/date picker
- input-otp 1.4.1 - OTP input component
- react-resizable-panels 2.1.7 - Resizable panel layout
- vaul 0.9.6 - Drawer component
Testing & Development
Type Checking:
- TypeScript 5 (strict mode enabled)
- Type checking via
npm run lint
Linting:
- Next.js ESLint (build-time linting)
- Config: ignored during builds (
eslint.ignoreDuringBuilds: true)
Development Server:
- Next.js dev server:
npm run dev(default port 3000)
Configuration
Environment:
- Location:
.env.local(local overrides),.env.development,.env.production,.env.example - Example file:
c:\Users\admin\Desktop\Lila-Server\qy-lty-admin\.env.example - Key env vars:
NEXT_PUBLIC_API_BASE_URL- Backend API base URL (e.g.,http://localhost:8000/api)NODE_ENV- Set toproductionin Docker runtime
TypeScript:
- Config:
tsconfig.json - Strict mode: enabled
- Path aliases:
@/*maps to project root
Next.js:
- Config:
next.config.mjs - Output mode:
standalone(self-contained app) - Images: unoptimized (external image optimization)
- Build optimization: parallel webpack, server build traces, server compilation
Platform Requirements
Development:
- Node.js 22+ (or compatible version)
- Package manager: yarn, npm, or pnpm
- Environment variables:
.env.localwithNEXT_PUBLIC_API_BASE_URL
Production:
- Docker runtime: Node.js 22.10.0 Alpine
- Memory: Typical SPA requirements (~500MB minimum)
- Port: 3000 (exposed in Dockerfile)
- Build artifacts:
.next/standalone,public/
Build Process
Development Build:
npm install # Install dependencies
npm run dev # Start dev server (hot reload)
Production Build:
npm install # Install all dependencies
npm run build # Next.js standalone build → .next/ directory
npm run start # Start production server (requires .next/ + public/)
Docker Build (CI/CD):
- Multi-stage build (builder + runner)
- Builder stage: installs full dependencies, runs
npm run build - Runner stage: installs production-only dependencies, copies .next/ and public/
- Yarn mirror: Taobao registry (
registry.npmmirror.com) - Final CMD:
yarn start(port 3000)
Stack analysis: 2026-05-07