Hướng dẫn phát triển
Hướng dẫn này bao gồm việc thiết lập môi trường phát triển để đóng góp cho Kerminal.
Yêu cầu
Đảm bảo bạn đã cài đặt những thứ sau:
| Công cụ | Phiên bản | Mục đích |
|---|---|---|
| Node.js | 20+ | Phát triển frontend |
| Rust | Stable mới nhất | Backend (Tauri) |
| Tauri CLI | Mới nhất | Công cụ build |
Cài đặt Rust
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/envCài đặt Tauri CLI
bash
cargo install tauri-cliDependencies theo nền tảng
Linux (Debian/Ubuntu)
bash
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-devLinux (Arch Linux)
bash
sudo pacman -S webkit2gtk \
base-devel \
curl \
wget \
file \
openssl \
appmenu-gtk-module \
libappindicator-gtk3 \
librsvgLinux (Fedora)
bash
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libxdo-devel \
libappindicator-gtk3-devel \
librsvg2-develmacOS
bash
xcode-select --installWindows
Cài đặt Visual Studio Build Tools với workload C++.
Bắt đầu
Clone Repository
bash
git clone https://github.com/klpod221/kerminal.git
cd kerminalCài đặt Dependencies
bash
npm installChế độ phát triển
bash
npm run tauri devLệnh này sẽ:
- Khởi động Vite dev server (hot reload)
- Compile backend Rust
- Mở cửa sổ Tauri
Build production
bash
npm run tauri buildOutput sẽ ở src-tauri/target/release/bundle/.
Cấu trúc dự án
kerminal/
├── src/ # Vue 3 frontend
│ ├── components/ # Vue components
│ ├── stores/ # Pinia stores
│ ├── views/ # Page views
│ ├── composables/ # Vue composables
│ └── assets/ # Static assets
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── commands/ # Tauri commands
│ │ ├── models/ # Data models
│ │ ├── services/ # Business logic
│ │ └── main.rs # Entry point
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Cấu hình Tauri
├── docs/ # VitePress documentation
├── public/ # Public assets
└── package.json # Node.js dependenciesCông nghệ chính
Frontend
| Công nghệ | Mục đích |
|---|---|
| Vue 3 | UI framework |
| TypeScript | Type safety |
| Pinia | State management |
| xterm.js | Terminal emulation |
| TailwindCSS | Styling |
Backend
| Công nghệ | Mục đích |
|---|---|
| Tauri v2 | Desktop framework |
| Tokio | Async runtime |
| russh | SSH implementation |
| SQLx | Database access |
| AES-GCM | Encryption |
Code Style
Frontend (TypeScript/Vue)
- Sử dụng Composition API với
<script setup> - Tuân theo Vue 3 style guide
- Sử dụng Prettier để format
bash
npm run prettyBackend (Rust)
- Tuân theo Rust idioms
- Sử dụng
cargo fmtđể format - Chạy
cargo clippyđể kiểm tra lints
bash
cargo fmt
cargo clippyTesting
Frontend Tests
bash
# Sắp ra mắt
npm run testBackend Tests
bash
cd src-tauri
cargo testĐóng góp
Workflow
- Fork repository
- Tạo feature branchbash
git checkout -b feature/tinh-nang-moi - Thực hiện thay đổi
- Chạy tests và linting
- Commit với message mô tảbash
git commit -m 'Add tinh nang moi' - Push lên fork của bạnbash
git push origin feature/tinh-nang-moi - Mở Pull Request
Commit Messages
Tuân theo conventional commits:
feat:Tính năng mớifix:Sửa lỗidocs:Tài liệustyle:Định dạngrefactor:Tái cấu trúc codetest:Testschore:Bảo trì
Hướng dẫn Pull Request
- Mô tả rõ ràng các thay đổi
- Liên kết các issue liên quan
- Bao gồm screenshot cho thay đổi UI
- Cập nhật tài liệu nếu cần
- Đảm bảo tất cả checks đều pass
Debugging
Frontend
Sử dụng Vue DevTools browser extension để debug Vue.
Backend
Bật debug logging:
bash
RUST_LOG=debug npm run tauri devNetwork
Để debug SSH, bật verbose SSH output trong development builds.
Build cho Release
Tất cả nền tảng
bash
npm run tauri buildNền tảng cụ thể
bash
# Linux
npm run tauri build -- --target x86_64-unknown-linux-gnu
# Windows
npm run tauri build -- --target x86_64-pc-windows-msvc
# macOS (Intel)
npm run tauri build -- --target x86_64-apple-darwin
# macOS (Apple Silicon)
npm run tauri build -- --target aarch64-apple-darwin