open-index/open-npm huggingface dataset:
npm package: @nsky/commitlint
Description: ## 代码提交规范
Latest version: 0.0.8

# 代码提交规范及自动化

## 代码提交规范

### 提交类型

| 类型     | 说明                                      |
| -------- | ----------------------------------------- |
| feat     | feature 新功能                            |
| fix      | 修复bug                                   |
| docs     | 只是文档相关的修复                        |
| style    | 格式（不影响代码运行的变动）              |
| refactor | 重构代码改变，既不是新功能，又不是修复bug |
| perf     | 代码改变为了性能提升                      |
| test     | 新增测试或者修正测试                      |
| build    | 影响编译生成的变动，例如npm               |
| ci       | 持续集成工具集成变动                      |
| chore    | 其他变动不影响src或者test 文件            |
| revert   | 回滚到之前的提交                          |

### 提交方式

```sh
# 1. 选择提交类型
# 2. 本修改影响的是内容
# 3. 写一个简短的介绍
# 4. 提供一个长的介绍
# 5. 本修改是否实现了某个issues
pnpm commit
```

## 自动产生 CHANGELOG

### 使用 Changesets 管理版本及更新日志

```sh
# 初始化配置
npx changeset init

# 生成 chanegset
# 1、选择版本类型
# 2、输入更新摘要
# 3、确定生成 changeset 文件
npx changeset

# 生成 changelog
npx changeset version

# 发布
npx changeset publish
```

### 使用 conventional-changelog-cli 生成 changelog

```sh
# 安装 conventional-changelog-cli
pnpm install conventional-changelog-cli --save-dev

# 如果不覆盖任何以前的变更日志，基于自上一个commit新增日志
pnpm conventional-changelog -p angular -i CHANGELOG.md -s

# 如果想要生成所有以前的变更日志
pnpm conventional-changelog -p angular -i CHANGELOG.md -s -r 0

# 增加scrpits
"scripts": {
  ...
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -w -r 0",
  ...
}

# 生成changelog
pnpm changelog

```

### 使用 standard-version 生成 changelog

```sh
# 安装 standard-version
pnpm install standard-version --save-dev

# 增加scrpits
"scripts": {
  ...
  "release": "standard-version -n -p",
  ...
}

# 生成 changelog 并发布版本
## 更新补丁版本（版本号最后那一位）
pnpm release
## 更新次版本（版本号中间那位）
pnpm release -- --release-as minor
## 更新次版本（版本号第一位）
pnpm release -- --release-as major
## 自定义版本
pnpm release -- --release-as v1.0.0
## 更新预备版（版本号后加一杠）
pnpm release -n -p rc
pnpm release -n -p beta
pnpm release -n -p alpha
pnpm release -n -p patch
pnpm release -n -p minor
pnpm release -n -p major
```

## 发布流程

```sh
changes
pnpm commit
pnpm release
```


## Q&A

### 1. 使用cgz代替commitizen+cz-git

### 2. 使用 `npx --no-install commitlint --edit` 避免安装commitlint