본문으로 건너뛰기

commit

대화형 cli 를 통해 일관된 형식의 커밋 메시지 작성을 도와주는 플러그인 입니다.

✔ Pick Commit Type · feat
✔ Pick Change Scope(skip by: Enter) · GoodsPage
✔ What did you do? · for add cart
✔ has BREAKING CHANGE for major update?(skip by: Enter) ·
? has detail?(skip by: Enter) › ...

=> feat(GoodsPage): for add cart

Installation

npm i -D @toktokhan-dev/cli @toktokhan-dev/cli-plugin-commit

Run Script

command 를 별도로 입력하지 않으면 대화형으로 실행되어 등록되어있는 스크립트 중 선택하여 사용이 가능합니다.

npx tokript

command 를 입력하면 해당 스크립트가 바로 실행됩니다.

npx tokript commit

자주 사용될 수 있는 스크립트는 협업간 편의성을 위해 package.json에 등록하는걸 권장 드립니다.

package.json
{
...
"scripts": {
"commit": "tokript commit",
}
}
yarn run commit

Changeset

프로젝트 내에서 changeset 을 사용하는 경우, changeset 에서 입력한 변경사항을 커밋에 그대로 입력하는 경우가 많습니다. commit 플러그인을 사용하면, changeset md 파일이 존재 할시, 자동으로 커밋 메시지를 기본 입력값으로 제공합니다.

Example

changeset 을 실행시켜 대화형모드를 통해 변경사항을 작성합니다.

pnpm changeset

🦋 Please enter a summary for this change (this will be in the changelogs).
🦋 Summary · change util function_

changset 을 통해 .changset 경로에 md 파일이 생성됩니다.

.changeset/stupid-turtles-protect.md
---
'@toktokhan-dev/util': patch
---

change util function


# Update Add Function

add 함수의 정의가 변경되었습니다.

git staging 된 파일 중 changeset md 파일이 존재 할 시

A  .changeset/stupid-turtles-protect.md  #changeset md 파일
A "apps/docs/docs/docs/tokript/3. Offical Plugins/7. commit.mdx"
M apps/docs/src/components/@mdx/tokript/_TokriptConfigItem.mdx
M pnpm-lock.yaml

아래와 같이 커밋 메시지가 자동으로 입력됩니다.

✔ Pick Commit Type · chore
✔ Pick Change Scope(skip by: Enter) · util
✔ What did you do? · change util function
✔ has BREAKING CHANGE for major update?(skip by: Enter) ·
? has detail?(skip by: Enter) › # Update Add Function

add 함수의 정의가 변경되었습니다.

Configuration

tok-cli.config.ts 에서 config 정의가 가능합니다.

tokript.config.ts
import { commit } from '@toktokhan-dev/cli-plugin-commit'

const config: RootConfig<{
plugins: [typeof commit]
}> = {
plugins: [commit],
'commit': {
...
},
}

export default config

types

  • Required: false
  • Type:
    CommitType[] | ((initial: CommitType[]) => CommitType[])
  • Default:

    [
    {
    name: 'deploy',
    description: '프로젝트 배포',
    emoji: '🚀',
    },
    {
    name: 'chore',
    description: '자잘한 수정',
    emoji: '🤖',
    },
    {
    name: 'docs',
    description: '문서 관련',
    emoji: '📝 ',
    },
    {
    name: 'feat',
    description: '새로운 기능, 페이지 추가',
    emoji: '🎸',
    },
    {
    name: 'fix',
    description: '버그 수정',
    emoji: '🐛',
    },
    {
    name: 'perf',
    description: '성능 개선',
    emoji: '👽',
    },
    {
    name: 'refactor',
    description: '코드 리팩토링',
    emoji: '💡',
    },
    {
    name: 'test',
    description: '테스트 관련',
    emoji: '💍',
    },
    {
    name: 'style',
    description: '스타일링 관련',
    emoji: '🎨',
    },
    ]

  • Cli Option: -
커밋 타입을 지정합니다.

config

tok-cli.config.ts
{
'commit': {
types: [{name: 'deploy', description: '프로젝트 배포', emoji: '🚀'}],
...
},
}

by Function

{
'commit': {
types: (prev) => prev.concat([{name: 'deploy', description: '프로젝트 배포', emoji: '🚀'}]),
...
},
}

CommitType

type CommitType = {
name: string
description: string
emoji?: string
}