Skip to Content
문서가이드CLI 레퍼런스

CLI 레퍼런스

@asapjs/cli는 ASAPJS 프로젝트의 생성, 개발, 빌드, 실행을 위한 커맨드라인 도구입니다. asapjs 명령어로 프로젝트 스캐폴딩부터 프로덕션 배포까지 전체 개발 워크플로우를 지원합니다.

설치

# 프로젝트 devDependency로 설치 (권장) npm install -D @asapjs/cli # 전역 설치 npm install -g @asapjs/cli # npx로 직접 실행 npx @asapjs/cli <command>

이 페이지에서 찾을 수 있는 것

명령어설명
asapjs new새 프로젝트 생성
asapjs dev개발 서버 (hot-reload)
asapjs build프로덕션 빌드
asapjs start프로덕션 서버 실행
asapjs generate컴포넌트 생성
.asapjs.jsonCLI 설정 파일

asapjs new

asapjs new <name> [options]

새 ASAPJS 프로젝트를 생성합니다. 대화형 프롬프트를 통해 패키지 매니저와 데이터베이스 설정을 선택합니다.

인자/옵션타입기본값설명
<name>string(필수)프로젝트 이름. 이 이름으로 디렉토리 생성
-t, --templatestringbasic프로젝트 템플릿

대화형 프롬프트

프롬프트선택지기본값
패키지 매니저yarn, npm, pnpmyarn
데이터베이스 사용 여부yes, noyes
데이터베이스 종류mysql, postgres, sqlitemysql

생성되는 파일 구조

my-project/ ├── src/ │ ├── index.ts # 애플리케이션 진입점 (Application 인스턴스 생성) │ ├── config.ts # 설정 파일 (extensions, swagger, db 등) │ └── route.ts # 라우트 정의 (빈 배열) ├── .asapjs.json # CLI 설정 파일 ├── .env # 환경 변수 ├── .env.local # 로컬 환경 ├── .env.dev # 개발 환경 ├── .env.prod # 프로덕션 환경 ├── .gitignore ├── package.json └── tsconfig.json

자동 설치되는 의존성

패키지종류설명
@asapjs/coredependencies프레임워크 코어
@asapjs/routerdependencies라우팅
@asapjs/commondependencies공통 유틸리티
@asapjs/sequelizedependenciesDB 사용 시 자동 추가
@asapjs/clidevDependenciesCLI 도구
typescriptdevDependenciesTypeScript 컴파일러
ts-nodedevDependenciesTypeScript 실행
asapjs new my-api cd my-api asapjs dev

asapjs dev

asapjs dev [options]

개발 서버를 시작합니다. ts-node으로 TypeScript를 직접 실행하며, chokidar로 파일 변경을 감지하여 자동으로 서버를 재시작합니다 (200ms 디바운스).

인자/옵션타입기본값설명
-e, --envstringlocal환경 이름. .env.{env} 파일을 로드
-p, --portstring(config 참조)포트 번호. 미지정 시 .asapjs.json의 환경별 설정 사용

동작 방식

  1. .env.{env} 파일에서 환경 변수 로드
  2. .asapjs.json에서 프로젝트 설정 로드
  3. npx ts-node src/index.ts로 서버 시작 (TS_NODE_TRANSPILE_ONLY=true)
  4. src/**/*.ts, .env*, env/**/* 파일 변경 감지 시 서버 재시작

감시 대상

패턴설명
src/**/*.tsTypeScript 소스 파일
.env*환경 변수 파일
env/**/*env 디렉토리 하위 파일
# 기본 (local 환경) asapjs dev # 개발 환경, 포트 지정 asapjs dev --env development --port 4000

asapjs build

asapjs build [options]

프로덕션용으로 애플리케이션을 빌드합니다. TypeScript를 컴파일하고, 환경 변수 파일과 package.json을 출력 디렉토리에 복사합니다.

인자/옵션타입기본값설명
-e, --envstringproduction환경 이름. .env.{env} 파일을 {output}/.env로 복사
-o, --outputstringdist출력 디렉토리

빌드 단계

  1. 환경 변수 로드
  2. 출력 디렉토리 생성
  3. .env.{env}{output}/.env로 복사
  4. TypeScript 컴파일 (소스맵: .asapjs.jsonbuild.sourceMap)
  5. package.json에서 devDependencies, scripts 제거 후 {output}/package.json으로 복사
# 기본 프로덕션 빌드 asapjs build # 개발 환경, 커스텀 출력 asapjs build --env development --output build

빌드 후 배포:

cd dist npm install --production asapjs start

asapjs start

asapjs start [options]

프로덕션 모드로 애플리케이션을 실행합니다. 빌드된 JavaScript를 node로 실행합니다.

인자/옵션타입기본값설명
-e, --envstringproduction환경 이름
-d, --dirstringdist애플리케이션 디렉토리

동작 방식

  1. {dir}/index.js 또는 {dir}/src/index.js를 탐색
  2. 해당 디렉토리에서 환경 변수 로드
  3. NODE_ENV=production으로 node 실행
# 기본 asapjs start # 커스텀 디렉토리 asapjs start --dir build

asapjs generate

asapjs generate <type> <name> [options] # 단축형 asapjs g <type> <name> [options]

ASAPJS 컴포넌트 보일러플레이트 코드를 생성합니다.

인자/옵션타입기본값설명
<type>string(필수)컴포넌트 타입
<name>string(필수)컴포넌트 이름
-p, --pathstringsrc파일 생성 경로

지원 컴포넌트 타입

타입별칭생성 파일설명
controller{Name}Controller.ts라우트 컨트롤러
serviceapplication{Name}Service.ts비즈니스 로직 서비스
dto{Name}Dto.ts데이터 전송 객체
# 컨트롤러 생성 asapjs g controller User # → src/UserController.ts # 서비스 생성 (커스텀 경로) asapjs g service Post --path src/modules # → src/modules/PostService.ts # DTO 생성 asapjs g dto CreateUser # → src/CreateUserDto.ts

.asapjs.json

프로젝트 루트에 위치하는 CLI 설정 파일입니다. asapjs new로 프로젝트를 생성하면 자동으로 생성됩니다.

{ "environments": { "local": { "envFile": ".env.local", "port": 3000 }, "development": { "envFile": ".env.dev", "port": 4000 }, "production": { "envFile": ".env.prod", "port": 8080 } }, "build": { "outDir": "dist", "sourceMap": true } }

environments

각 환경별로 사용할 .env 파일과 기본 포트를 정의합니다.

필드타입설명
envFilestring환경별 .env 파일 경로
portnumber환경별 기본 포트. --port 옵션으로 오버라이드 가능

build

빌드 관련 설정입니다.

필드타입설명
outDirstring빌드 출력 디렉토리
sourceMapbooleanTypeScript 컴파일 시 소스맵 생성 여부

워크플로우 예제

# 1. 프로젝트 생성 asapjs new my-api cd my-api # 2. 컴포넌트 스캐폴딩 asapjs g controller User asapjs g service User asapjs g dto CreateUser # 3. 개발 asapjs dev # 로컬 개발 서버 asapjs dev --env development # 개발 환경 # 4. 빌드 및 배포 asapjs build # 프로덕션 빌드 cd dist && npm install --production asapjs start # 프로덕션 실행

관련 항목

Last updated on