Skip to content

Orbit CLI ​

Giao diện dòng lệnh chính thức cho Orbit.

Cài đặt ​

bash
# Cài đặt toàn cục
bun add -g orbit

# Hoặc sử dụng với bunx
orbit <lệnh>

Tham chiếu nhanh ​

LệnhMô tả
orbit new <tên>Tạo dự án mới
orbit generate <loại> <tên>Tạo thành phần
orbit devKhởi động máy chủ phát triển
orbit buildXây dựng cho sản xuất
orbit testChạy kiểm thử

Tạo dự án ​

bash
orbit new my-app
cd my-app
bun run dev

Tùy chọn:

  • --skip-git - Bỏ qua khởi tạo git
  • --skip-install - Bỏ qua cài đặt phụ thuộc

Tạo mã ​

Controller ​

bash
orbit generate controller users
# Tạo: src/users/users.controller.ts

Service ​

bash
orbit generate service users
# Tạo: src/users/users.service.ts

Module ​

bash
orbit generate module users
# Tạo: src/users/users.module.ts

Tài nguyên (CRUD) ​

bash
orbit generate resource users
# Tạo:
#   src/users/users.module.ts
#   src/users/users.controller.ts
#   src/users/users.service.ts
#   src/users/dto/create-user.dto.ts
#   src/users/dto/update-user.dto.ts
#   src/users/entities/user.entity.ts

Thành phần khác ​

bash
orbit generate guard auth
orbit generate pipe validation
orbit generate interceptor logging
orbit generate middleware logger
orbit generate filter http-exception

Tùy chọn tạo ​

bash
# Chỉ định đường dẫn
orbit g controller users --path src/modules/users

# Cấu trúc phẳng (không có thư mục con)
orbit g service users --flat

# Bỏ qua file kiểm thử
orbit g controller users --no-spec

# Chạy thử (xem trước)
orbit g module users --dry-run

Máy chủ phát triển ​

bash
orbit dev

Tính năng:

  • Hot Module Replacement (HMR)
  • Biên dịch nhanh với Bun.Transpiler
  • Tự động khởi động lại khi có thay đổi

Tùy chọn:

  • --port <số> - Số cổng (mặc định: 3000)
  • --host <chuỗi> - Địa chỉ máy chủ (mặc định: localhost)

Xây dựng ​

bash
orbit build

Tùy chọn:

  • --outdir <đường dẫn> - Thư mục đầu ra (mặc định: dist)
  • --minify - Rút gọn đầu ra

Kiểm thử ​

bash
orbit test

Tùy chọn:

  • --watch - Chế độ theo dõi
  • --coverage - Tạo báo cáo phủ sóng

Thành phần GraphQL ​

bash
# Tạo resolver
orbit generate resolver users

# Tạo tài nguyên GraphQL hoàn chỉnh
orbit generate graphql-resource users

Thành phần Microservice ​

bash
# Tạo bộ xử lý tin nhắn
orbit generate handler notifications

# Tạo tài nguyên microservice
orbit generate microservice-resource orders

Bí danh ​

Lệnh đầy đủBí danh
generateg
controllerco
services
modulemo
resourceres
guardgu
pipepi
interceptoritc
middlewaremi
filterf

Ví dụ:

bash
orbit g res users  # Tương đương: orbit generate resource users

Công cụ di chuyển NestJS ​

CLI bao gồm một công cụ di chuyển mạnh mẽ để giúp bạn chuyển đổi từ dự án NestJS sang Orbit.

Phân tích dự án ​

Trước khi di chuyển, hãy phân tích dự án của bạn để kiểm tra tính tương thích:

bash
orbit migrate analyze ./my-nestjs-app

Điều này sẽ hiển thị:

  • Phụ thuộc NestJS được tìm thấy và các phiên bản Orbit tương ứng
  • Số lượng file TypeScript cần xử lý
  • Các mục cần xem xét thủ công (TypeORM, Passport, bcrypt, v.v.)
  • Điểm số tương thích di chuyển tổng thể

Di chuyển toàn bộ ​

Di chuyển toàn bộ dự án của bạn:

bash
# Xem trước các thay đổi mà không sửa đổi file
orbit migrate ./my-nestjs-app --dry-run

# Áp dụng di chuyển
orbit migrate ./my-nestjs-app

# Bỏ qua việc tạo file sao lưu
orbit migrate ./my-nestjs-app --skip-backup

# Đầu ra chi tiết
orbit migrate ./my-nestjs-app --verbose

Chỉ di chuyển import ​

Nếu bạn chỉ muốn cập nhật câu lệnh import:

bash
orbit migrate imports ./my-nestjs-app
orbit migrate imports ./my-nestjs-app --dry-run

Những gì được di chuyển ​

Chuyển đổi tự động ​

TrướcSau
@nestjs/common@galaxy-stack/orbit-common
@nestjs/core@galaxy-stack/orbit-core
@nestjs/config@galaxy-stack/orbit-config
@nestjs/graphql@galaxy-stack/orbit-graphql
@nestjs/microservices@galaxy-stack/orbit-microservices
@nestjs/websockets@galaxy-stack/orbit-websockets
@nestjs/schedule@galaxy-stack/orbit-schedule
@nestjs/terminus@galaxy-stack/orbit-terminus
@nestjs/throttler@galaxy-stack/orbit-throttler
@nestjs/jwt@galaxy-stack/orbit-auth
@nestjs/passport@galaxy-stack/orbit-auth
@nestjs/cache-manager@galaxy-stack/orbit-cache
@nestjs/swagger@galaxy-stack/orbit-swagger
@nestjs/testing@galaxy-stack/orbit-testing
@nestjs/platform-express@galaxy-stack/orbit-platform-bun
@nestjs/platform-fastify@galaxy-stack/orbit-platform-bun
NestFactory.create()BunFactory.create()
NestFactory.createMicroservice()BunFactory.createMicroservice()

Chuyển đổi mã ​

typescript
// Trước
import { NestFactory } from '@nestjs/core';
const app = await NestFactory.create(AppModule);

// Sau
import { BunFactory } from '@galaxy-stack/orbit-core';
const app = await BunFactory.create(AppModule);
typescript
// Trước
import * as bcrypt from 'bcrypt';
const hash = await bcrypt.hash(password, 10);
const valid = await bcrypt.compare(password, hash);

// Sau
const hash = await Bun.password.hash(password);
const valid = await Bun.password.verify(password, hash);

Cập nhật Package.json ​

Công cụ di chuyển sẽ:

  • Thay thế phụ thuộc @nestjs/* bằng các phiên bản @galaxy-stack/orbit-* tương ứng
  • Thêm reflect-metadata nếu chưa có
  • Xóa @nestjs/cli và @nestjs/schematics
  • Thêm @galaxy-stack/orbit-testing như phụ thuộc phát triển

Các mục cần xem xét thủ công ​

Công cụ di chuyển sẽ cảnh báo bạn về các mẫu sau:

MẫuHành động được đề xuất
Sử dụng TypeORMDi chuyển sang Drizzle ORM với @galaxy-stack/orbit-database
Sử dụng MongooseDi chuyển sang Drizzle MongoDB
PassportStrategySử dụng guard @galaxy-stack/orbit-auth thay thế
class-validatorSử dụng Zod với @galaxy-stack/orbit-validation
Kiểu dành riêng cho nền tảngXem xét việc sử dụng Bun.serve()

Các bước sau khi di chuyển ​

  1. Cài đặt phụ thuộc:

    bash
    bun install
  2. Cập nhật tsconfig.json nếu cần:

    json
    {
      "compilerOptions": {
        "target": "ESNext",
        "module": "ESNext",
        "moduleResolution": "bundler",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true
      }
    }
  3. Khởi động máy chủ phát triển:

    bash
    bun run dev
  4. Chạy kiểm thử:

    bash
    bun test

Ví dụ di chuyển ​

Di chuyển Module hoàn chỉnh ​

typescript
// Trước (NestJS)
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    ConfigModule.forRoot(),
    TypeOrmModule.forRoot({...}),
  ],
})
export class AppModule {}

// Sau (Orbit)
import { Module } from '@galaxy-stack/orbit-core';
import { ConfigModule } from '@galaxy-stack/orbit-config';
import { DatabaseModule } from '@galaxy-stack/orbit-database';

@Module({
  imports: [
    ConfigModule.forRoot(),
    DatabaseModule.forRoot({...}),
  ],
})
export class AppModule {}

Di chuyển xác thực ​

typescript
// Trước (NestJS + Passport)
import { UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';

@UseGuards(AuthGuard('jwt'))
@Controller('users')
export class UsersController {}

// Sau (Orbit)
import { UseGuards } from '@galaxy-stack/orbit-common';
import { JwtAuthGuard } from '@galaxy-stack/orbit-auth';

@UseGuards(JwtAuthGuard)
@Controller('users')
export class UsersController {}

Xem Hướng dẫn di chuyển để biết thêm hướng dẫn chi tiết.

Released under the MIT License.