UNPKG

@tianyio/quality-helper

Version:

A comprehensive quality helper tool for project scaffolding and management

139 lines (101 loc) 3.05 kB
# 代码质量与测试指南 ## 目录 1. [代码质量工具](#代码质量工具) 2. [代码复杂度检测](#代码复杂度检测) 3. [Git Hooks](#git-hooks) 4. [使用指南](#使用指南) ## 代码质量工具 ### ESLint - **配置文件**: eslint.config.js - **功能**: JavaScript/TypeScript 代码质量检查 - **集成插件**: - `@typescript-eslint`: TypeScript 支持 - `eslint-plugin-vue`: Vue 文件检查 - `eslint-plugin-promise`: Promise 最佳实践 - `eslint-config-prettier`: 禁用与 Prettier 冲突的规则 - `eslint-plugin-prettier`: 将 Prettier 作为 ESLint 规则运行 ### Prettier - **配置文件**: prettier.config.js - **功能**: 代码格式化工具 - **集成**: 与 ESLint 协同工作,避免冲突 ### EditorConfig - **配置文件**: `.editorconfig` - **功能**: 跨编辑器代码风格统一 ## 代码复杂度检测 ### 检测规则 - **最大嵌套深度**: 4 层 - **函数最大行数**: 50 行 - **函数最大参数**: 4 个 - **函数最大语句数**: 10 条 - **文件最大行数**: 300 行 ### 配置位置 代码复杂度检测规则已集成在主 ESLint 配置文件中: ```javascript { rules: { // 代码复杂度规则 'max-depth': ['warn', 4], // 最大嵌套深度 'max-lines': ['warn', 300], // 文件最大行数 'max-lines-per-function': ['warn', 50], // 函数最大行数 'max-nested-callbacks': ['warn', 3], // 最大嵌套回调 'max-params': ['warn', 4], // 函数最大参数 'max-statements': ['warn', 10], // 函数最大语句数 } } ``` ## Git Hooks ### Pre-commit Hook - **工具**: lint-staged + husky - **执行流程**: 1. Prettier 格式化代码 2. ESLint 修复代码问题 配置文件: `.husky/pre-commit` ```bash #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" lint-staged ``` ### Commit-msg Hook - **工具**: commitlint + husky - **功能**: 提交信息格式验证 - **规则**: - 类型必须在规定范围内 - 主题长度限制 (4-50 字符) - 提交信息总长度限制 (100 字符) 配置文件: `.husky/commit-msg` ```bash #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" commitlint --edit "$1" ``` ## 使用指南 ### 代码质量检查 ```bash # 检查代码质量 pnpm lint # 自动修复代码问题 pnpm lint:fix # 代码格式化 pnpm format ``` ### 代码复杂度检查 ```bash # 检查代码复杂度(已集成在 ESLint 中) pnpm lint ``` ### Git Hooks 使用 ```bash # 提交代码时自动执行代码质量检查 git add . git commit -m "update: 添加新功能" # 手动运行 pre-commit 检查 npx lint-staged # 手动验证提交信息格式 npx commitlint --from HEAD~1 --to HEAD --verbose ``` ## 最佳实践 1. **保持简洁**: 遵循代码复杂度规则 2. **持续集成**: 利用 Git Hooks 自动检查 3. **定期检查**: 定期运行完整质量检查 4. **格式统一**: 使用 Prettier 保持代码风格一致 5. **类型安全**: 充分利用 TypeScript 的类型检查功能