naeilcli 0.0.4+4 copy "naeilcli: ^0.0.4+4" to clipboard
naeilcli: ^0.0.4+4 copied to clipboard

CLI to scaffold GetX pages and routes.

naeilcli #

Flutter GetX 프로젝트를 위한 강력한 CLI 스캐폴딩 도구입니다. GetX 페이지, 컨트롤러, 바인딩, 라우트를 자동으로 생성하여 개발 생산성을 크게 향상시킵니다.

✨ 주요 기능 #

  • 자동 파일 생성: GetX 페이지, 컨트롤러, 바인딩, 뷰 파일을 한 번에 생성
  • 라우트 자동 등록: app_pages.dartapp_routes.dart에 자동으로 라우트 등록
  • 커스터마이징: 모듈 디렉토리, 라우트 파일 경로, 라우트 경로 등을 자유롭게 설정
  • 안전한 생성: 기존 파일 덮어쓰기 방지 (force 옵션으로 강제 덮어쓰기 가능)
  • 한국어 지원: 모든 메시지와 도움말이 한국어로 제공

🚀 설치 #

dart pub global activate naeilcli

📖 사용법 #

기본 사용법 #

# 새 모듈 생성
naeilcli make home

# 또는 naeilmake 명령어로 직접 실행
naeilmake home

옵션 #

naeilcli make <모듈명> [옵션]

옵션:
-h, --help              도움말을 출력합니다.
-f, --force             이미 존재하는 파일을 덮어씁니다.
--app                   app 폴더 구조 (lib/app/...)에 모듈을 생성합니다.
--web                   web 폴더 구조 (lib/web/...)에 모듈을 생성합니다.
--modules-dir           생성된 기능 폴더가 생성될 디렉토리입니다. (기본값: lib/app/pages)
--routes-file           GetPage 항목이 추가될 라우트 정의 파일입니다. (기본값: lib/app/routes/app_pages.dart)
--routes-part           Routes와 _Paths 상수가 저장되는 part 파일입니다. (기본값: lib/app/routes/app_routes.dart)
--path                  커스텀 라우트 경로. 기본값은 /<name>(param-case) 입니다.

참고: --app--web 옵션은 동시에 사용할 수 없습니다.

사용 예시 #

# 기본 홈 모듈 생성 (app 폴더 구조)
naeilcli make home

# app 폴더 구조로 명시적 생성
naeilcli make home --app

# web 폴더 구조로 모듈 생성
naeilcli make home --web

# 커스텀 경로로 모듈 생성
naeilcli make user-profile --path /profile

# web 폴더 구조에서 커스텀 경로로 생성
naeilcli make user-profile --web --path /profile

# 커스텀 디렉토리에 모듈 생성
naeilcli make settings --modules-dir lib/features

# 기존 파일 덮어쓰기
naeilcli make dashboard --force

# app 폴더 구조에서 기존 파일 덮어쓰기
naeilcli make dashboard --app --force

📁 생성되는 파일 구조 #

App 폴더 구조 (기본값 또는 --app 옵션) #

lib/app/pages/
└── home/                    # 모듈명 (snake_case)
    ├── controllers/
    │   └── home_controller.dart
    ├── bindings/
    │   └── home_binding.dart
    └── views/
        └── home_view.dart

Web 폴더 구조 (--web 옵션) #

lib/web/pages/
└── home/                    # 모듈명 (snake_case)
    ├── controllers/
    │   └── home_controller.dart
    ├── bindings/
    │   └── home_binding.dart
    └── views/
        └── home_view.dart

🔧 생성되는 파일 내용 #

Controller (home_controller.dart) #

import 'package:get/get.dart';

class HomeController extends GetxController {
  // TODO: HomeController 구현
}

Binding (home_binding.dart) #

import 'package:get/get.dart';

import '../controllers/home_controller.dart';

class HomeBinding extends Bindings {
  @override
  void dependencies() {
    Get.lazyPut<HomeController>(() => HomeController());
  }
}

View (home_view.dart) #

import 'package:flutter/material.dart';
import 'package:get/get.dart';

import '../controllers/home_controller.dart';

class HomeView extends GetView<HomeController> {
  const HomeView({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('HomeView'),
        centerTitle: true,
      ),
      body: const Center(
        child: Text(
          'HomeView 동작 중',
          style: TextStyle(fontSize: 20),
        ),
      ),
    );
  }
}

🛠️ 라우트 파일 설정 #

이 도구는 다음 마커를 사용하여 파일에 자동으로 코드를 삽입합니다:

App 폴더 구조의 라우트 파일 #

app_pages.dart (lib/app/routes/app_pages.dart)

import 'package:get/get.dart';

part 'app_routes.dart';

// NAEILMAKE: import

class AppPages {
  AppPages._();

  static final routes = <GetPage<dynamic>>[
    // NAEILMAKE: routes
  ];
}

app_routes.dart (lib/app/routes/app_routes.dart)

part of 'app_pages.dart';

abstract class Routes {
  Routes._();

  // NAEILMAKE: route-constants
}

abstract class _Paths {
  _Paths._();

  // NAEILMAKE: path-constants
}

Web 폴더 구조의 라우트 파일 #

app_pages.dart (lib/web/routes/app_pages.dart)

import 'package:get/get.dart';

part 'app_routes.dart';

// NAEILMAKE: import

class AppPages {
  AppPages._();

  static final routes = <GetPage<dynamic>>[
    // NAEILMAKE: routes
  ];
}

app_routes.dart (lib/web/routes/app_routes.dart)

part of 'app_pages.dart';

abstract class Routes {
  Routes._();

  // NAEILMAKE: route-constants
}

abstract class _Paths {
  _Paths._();

  // NAEILMAKE: path-constants
}

📋 요구사항 #

  • Dart SDK: ^3.7.0
  • Flutter: >=1.17.0
  • GetX 패키지 (프로젝트에 설치 필요)

📄 라이선스 #

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

👨‍💻 개발자 #

naeileun.dev에서 더 많은 정보를 확인하세요.

1
likes
140
points
10
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

CLI to scaffold GetX pages and routes.

Homepage

License

MIT (license)

Dependencies

args, flutter, path, recase

More

Packages that depend on naeilcli