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
- yarn
- pnpm
npm i -D @toktokhan-dev/cli @toktokhan-dev/cli-plugin-commit
yarn add -D @toktokhan-dev/cli @toktokhan-dev/cli-plugin-commit
pnpm add -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
- npm
- pnpm
yarn run commit
npm run commit
pnpm 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
}