add, test & update
새 기능 뼈대 만들기, 확인 한 번에 돌리기, 새 킷 버전 가져오기 명령입니다.
add feature
새 기능 뼈대를 만듭니다. 백엔드 features/<이름>(router, service, repository, schemas)와 테스트, 프론트 (service)/<이름> 화면 골격을 만들고 api.py에 라우터를 등록합니다.
bash
npx @snackcup/meerkit add feature meetings
npx @snackcup/meerkit add feature meetings --dry-run # 만들 파일 목록만 보기- 이름은 소문자로 시작하는 영문, 숫자,
_입니다. --dry-run은 파일을 만들지 않고 목록만 보여 줍니다.
test
백엔드 ruff와 pytest, 프론트엔드 lint와 build를 차례로 돌립니다. pytest는 DB가 켜져 있어야 합니다.
bash
npx @snackcup/meerkit test
npx @snackcup/meerkit test --backend
npx @snackcup/meerkit test --frontend --fast| 옵션 | 설명 |
|---|---|
--backend | 백엔드만 확인합니다 |
--frontend | 프론트엔드만 확인합니다 |
--fast | build를 생략합니다 |
- 원인을 알 수 있는 실패(DB 연결 실패, 테이블 없음,
.env값 누락, 파이썬 모듈 없음, 포트 사용 중)는 스택 트레이스 대신 원인, 실제 에러 줄, 해결 순서를 보여 줍니다. 알 수 없는 실패는 마지막 로그를 그대로 보여 줍니다. 전체 로그는meerkit-test.log에 남습니다. pytest는 DB가 필요합니다. DB가 응답하지 않으면 pytest를 돌리지 않고 바로 어느 주소·포트에 연결하지 못했는지와 해결 방법을 알려 줍니다. 이럴 때는npx @snackcup/meerkit status로 확인한 뒤npx @snackcup/meerkit start로 DB를 켜세요.
update
킷은 파일을 복사해 주는 템플릿이라서, 새 버전이 나와도 만든 프로젝트는 그대로입니다. update는 처음 받은 파일(.meerkit/manifest.json)과 지금 파일, 새 버전을 비교해 가져올 변경을 알려 줍니다.
bash
npx @snackcup/meerkit@latest update # 무엇이 바뀌는지 미리 보기
npx @snackcup/meerkit@latest update --apply # 실제로 적용| 내 파일 상태 | update가 하는 일 |
|---|---|
| 내가 고치지 않은 파일 | 새 버전으로 갱신합니다 |
| 내가 고쳤고 킷도 바뀐 파일 | 덮어쓰지 않고 파일명.meerkit-new로 새 버전을 옆에 둡니다. 직접 합치세요 |
| 내가 고쳤고 킷은 그대로인 파일, 내가 지운 파일 | 그대로 둡니다 |
| 새로 생긴 파일 | 추가합니다 |
| package-lock.json, uv.lock | 비교하지 않습니다. package.json이나 pyproject.toml이 바뀌면 setup으로 다시 설치하세요 |
| 옵션 | 설명 |
|---|---|
--apply | 실제로 파일을 씁니다 (없으면 미리보기만) |
--force | 커밋하지 않은 변경이 있어도 적용합니다 |
--dir <폴더> | 다른 폴더의 프로젝트를 대상으로 합니다 |
--apply 전에 변경을 커밋해 두세요. 커밋하지 않은 변경이 있으면 적용이 막힙니다. 0.1.0-rc.2 이전 버전으로 만든 프로젝트는 처음 받은 파일의 기록이 없어 대부분이 충돌로 나옵니다.