[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3773":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},3773,"commitlint","conventional-changelog\u002Fcommitlint","conventional-changelog","📓 Lint commit messages","https:\u002F\u002Fcommitlint.js.org",null,"TypeScript",18593,964,63,82,0,19,75,6,43.95,"MIT License",false,"master",true,[26,27,28,29],"commit","conventions","git","lint","2026-06-12 02:00:54","# [Get Started](https:\u002F\u002Fcommitlint.js.org\u002Fguides\u002Fgetting-started) | [Website](https:\u002F\u002Fcommitlint.js.org)\n\n> Lint commit messages\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"600\" src=\"docs\u002Fpublic\u002Fassets\u002Fcommitlint.svg\">\n\u003C\u002Fp>\n\n> Demo generated with [svg-term-cli](https:\u002F\u002Fgithub.com\u002Fmarionebl\u002Fsvg-term-cli)\n>\n> `cat docs\u002Fassets\u002Fcommitlint.json | svg-term --out docs\u002Fpublic\u002Fassets\u002Fcommitlint.svg --frame --profile=Seti --height=20 --width=80`\n\n[![npm latest][2]][3] [![node compatibility][13]][14] [![Github Actions][4]][5]\n\n- 🚓 Be a good `commitizen`\n- 📦 Share configuration via `npm`\n- 🤖 Tap into `conventional-changelog`\n\n## Contents\n\n- [Get Started | Website](#get-started--website)\n  - [Contents](#contents)\n  - [What is commitlint](#what-is-commitlint)\n    - [Benefits of using commitlint](#benefits-of-using-commitlint)\n  - [Getting started](#getting-started)\n  - [CLI](#cli)\n  - [Config](#config)\n  - [Shared configuration](#shared-configuration)\n  - [Documentation](#documentation)\n  - [API](#api)\n  - [Tools](#tools)\n  - [Roadmap](#roadmap)\n  - [Version Support and Releases](#version-support-and-releases)\n    - [Releases](#releases)\n  - [Related projects](#related-projects)\n  - [License](#license)\n  - [Development](#development)\n    - [Install and run](#install-and-run)\n\n---\n\n## What is commitlint\n\ncommitlint checks if your commit messages meet the [conventional commit format](https:\u002F\u002Fconventionalcommits.org).\n\nIn general the pattern mostly looks like this:\n\n```sh\ntype(scope?): subject  #scope is optional; multiple scopes are supported (current delimiter options: \"\u002F\", \"\\\" and \",\")\n```\n\nReal world examples can look like this:\n\n```text\nchore: run tests on travis ci\n```\n\n```text\nfix(server): send cors headers\n```\n\n```text\nfeat(blog): add comment section\n```\n\nCommon types according to [commitlint-config-conventional (based on the Angular convention)](https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fcommitlint\u002Ftree\u002Fmaster\u002F@commitlint\u002Fconfig-conventional#type-enum) can be:\n\n- build\n- chore\n- ci\n- docs\n- feat\n- fix\n- perf\n- refactor\n- revert\n- style\n- test\n\nThese can be modified by [your own configuration](#config).\n\n### Benefits of using commitlint\n\n- [Why Use Conventional Commits?](https:\u002F\u002Fwww.conventionalcommits.org\u002Fen\u002Fv1.0.0-beta.2\u002F#why-use-conventional-commits)\n- [\"The perks of committing with conventions\" (Talk slides)](https:\u002F\u002Fslides.com\u002Fmarionebl\u002Fthe-perks-of-committing-with-conventions#\u002F)\n\n## Getting started\n\n- [Local setup](https:\u002F\u002Fcommitlint.js.org\u002Fguides\u002Flocal-setup) - Lint messages on commit with husky\n- [CI setup](https:\u002F\u002Fcommitlint.js.org\u002Fguides\u002Fci-setup) - Lint messages during CI builds\n\n## CLI\n\n- Primary way to interact with commitlint.\n- `npm install --save-dev @commitlint\u002Fcli`\n- Packages: [cli](.\u002F@commitlint\u002Fcli)\n\n## Config\n\n- Configuration is picked up from:\n  - `.commitlintrc`\n  - `.commitlintrc.json`\n  - `.commitlintrc.yaml`\n  - `.commitlintrc.yml`\n  - `.commitlintrc.js`\n  - `.commitlintrc.cjs`\n  - `.commitlintrc.mjs`\n  - `.commitlintrc.ts`\n  - `.commitlintrc.cts`\n  - `.commitlintrc.mts`\n  - `commitlint.config.js`\n  - `commitlint.config.cjs`\n  - `commitlint.config.mjs`\n  - `commitlint.config.ts`\n  - `commitlint.config.cts`\n  - `commitlint.config.mts`\n  - `commitlint` field in `package.json`\n  - `commitlint` field in [`package.yaml`](https:\u002F\u002Fgithub.com\u002Fpnpm\u002Fpnpm\u002Fpull\u002F1799)\n- Packages: [cli](.\u002F@commitlint\u002Fcli), [core](.\u002F@commitlint\u002Fcore)\n- See [Rules](.\u002Fdocs\u002Freference\u002Frules.md) for a complete list of possible rules\n- An example configuration can be found at [@commitlint\u002Fconfig-conventional](.\u002F@commitlint\u002Fconfig-conventional\u002Fsrc\u002Findex.ts)\n\n### Important note about Node 24+\n\nNode v24 changes the way that modules are loaded, and this includes the commitlint config file. If your project does not contain a `package.json`, commitlint may fail to load the config, resulting in a `Please add rules to your commitlint.config.js` error message. This can be fixed by doing either of the following:\n\n- Add a `package.json` file, declaring your project as an ES6 module. This can be done easily by running `npm init es6`.\n- Rename the config file from `commitlint.config.js` to `commitlint.config.mjs`.\n\n## Shared configuration\n\nA number of shared configurations are available to install and use with `commitlint`:\n\n- [@commitlint\u002Fconfig-angular](.\u002F@commitlint\u002Fconfig-angular)\n- [@commitlint\u002Fconfig-conventional](.\u002F@commitlint\u002Fconfig-conventional)\n- [@commitlint\u002Fconfig-lerna-scopes](.\u002F@commitlint\u002Fconfig-lerna-scopes)\n- [@commitlint\u002Fconfig-nx-scopes](.\u002F@commitlint\u002Fconfig-nx-scopes)\n- [@commitlint\u002Fconfig-patternplate](.\u002F@commitlint\u002Fconfig-patternplate)\n- [@commitlint\u002Fconfig-workspace-scopes](.\u002F@commitlint\u002Fconfig-workspace-scopes)\n- [conventional-changelog-lint-config-atom](https:\u002F\u002Fgithub.com\u002Ferikmueller\u002Fconventional-changelog-lint-config-atom)\n- [conventional-changelog-lint-config-canonical](https:\u002F\u002Fgithub.com\u002Fgajus\u002Fconventional-changelog-lint-config-canonical)\n\n> ⚠️ If you want to publish your own shareable config then make sure it has a name aligning with the pattern `commitlint-config-emoji-log` or `commitlint-config-your-config-name` — then in extend all you have to write is `emoji-log` or `your-config-name`.\n\n## Documentation\n\nCheck the [main website](https:\u002F\u002Fcommitlint.js.org\u002F).\n\n## API\n\n- Alternative, programmatic way to interact with `commitlint`\n- Packages:\n  - [format](.\u002F@commitlint\u002Fformat) - Format commitlint reports\n  - [lint](.\u002F@commitlint\u002Flint) - Lint a string against commitlint rules\n  - [load](.\u002F@commitlint\u002Fload) - Load shared commitlint configuration\n  - [read](.\u002F@commitlint\u002Fread) - Read commit messages from a specified range or last edit\n- See [API](.\u002Fdocs\u002Fapi) for a complete list of methods and examples\n\n## Tools\n\n- [commitizen adapter](.\u002F@commitlint\u002Fprompt)\n- [prompt](.\u002F@commitlint\u002Fprompt-cli)\n\n## Roadmap\n\n`commitlint` is considered stable and is used in various projects as a development tool.\n\n> **Ideas**: [conventional-changelog\u002Fcommitlint#94](https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fcommitlint\u002Fissues\u002F94)\n\n## Version Support and Releases\n\n- Node.js [LTS](https:\u002F\u002Fgithub.com\u002Fnodejs\u002FLTS#lts-schedule) `>= 22.12`\n- git `>= 2.13.2`\n\n### Releases\n\nSecurity patches will be applied to versions which are not yet EOL.\\\nFeatures will only be applied to the current main version.\n\n| Release                                                                          | Initial release |\n| -------------------------------------------------------------------------------- | --------------- |\n| [v19](https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fcommitlint\u002Freleases\u002Ftag\u002Fv19.0.0) | 02\u002F2024         |\n| [v18](https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fcommitlint\u002Freleases\u002Ftag\u002Fv18.0.0) | 10\u002F2023         |\n\nEOL is usually after around a year.\n\nWe're not a sponsored OSS project. Therefore we can't promise that we will release patch versions for older releases in a timely manner.\\\nIf you are stuck on an older version and need a security patch we're happy if you can provide a PR.\n\n## Related projects\n\n- [conventional-changelog](https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fconventional-changelog)\n  Generate a changelog from conventional commit history\n- [commitizen](https:\u002F\u002Fgithub.com\u002Fcommitizen\u002Fcz-cli)\n  Simple commit conventions for internet citizens\n- [create-semantic-module](https:\u002F\u002Fgithub.com\u002Fjlegrone\u002Fcreate-semantic-module)\n  CLI for quickly integrating commitizen and commitlint in new or existing projects\n\n## License\n\nCopyright by @marionebl. All `commitlint` packages are released under the MIT license.\n\n## Development\n\n`commitlint` is developed in a mono repository.\n\n### Install and run\n\n```sh\ngit clone git@github.com:conventional-changelog\u002Fcommitlint.git\ncd commitlint\nyarn\nyarn run build # run build tasks\nyarn start # run tests, again on change\nyarn run commitlint # run CLI\n```\n\nFor more information on how to contribute please take a look at our [contribution guide](.\u002F.github\u002FCONTRIBUTING.md).\n\n[0]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstability-stable-green.svg?style=flat-square\n[1]: https:\u002F\u002Fnodejs.org\u002Fapi\u002Fdocumentation.html#documentation_stability_index\n[2]: https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@commitlint\u002Fcli.svg?style=flat-square\n[3]: https:\u002F\u002Fnpmjs.org\u002Fpackage\u002F@commitlint\u002Fcli\n[4]: https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fcommitlint\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg\n[5]: https:\u002F\u002Fgithub.com\u002Fconventional-changelog\u002Fcommitlint\u002Factions\u002Fworkflows\u002FCI.yml\n[8]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstability-experimental-orange.svg?style=flat-square\n[9]: https:\u002F\u002Fnodejs.org\u002Fapi\u002Fdocumentation.html#documentation_stability_index\n[10]: https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@commitlint\u002Fcli\u002Fnext.svg?style=flat-square\n[13]: https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002F@commitlint\u002Fcli.svg\n[14]: https:\u002F\u002Fnodejs.org\u002Fen\u002Fabout\u002Fprevious-releases\n","commitlint 是一个用于检查 Git 提交信息是否符合约定式提交格式的工具。它基于 TypeScript 开发，支持多种配置文件格式（如 JSON、YAML、JS 等），并可通过 npm 共享配置。commitlint 可以与 husky 集成，在本地开发时自动验证提交信息；也可以在持续集成环境中使用，确保团队成员遵循统一的提交规范。这有助于提高代码库的可维护性和版本发布的自动化程度。",2,"2026-06-11 02:56:11","top_language"]