名称: 编码标准执行器 描述: 使用 linter、格式化器和预提交钩子自动化代码样式执行,确保代码库一致 许可证: MIT 元数据: 适应者: ai-skills 类别: 代码质量
编码标准执行器
通过 linter、格式化器和钩子自动化代码质量和一致性。
ESLint 配置
// .eslintrc.js
module.exports = {
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react/recommended',
'prettier'
],
rules: {
'no-console': 'warn',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/explicit-function-return-type': 'warn',
'react/prop-types': 'off',
'complexity': ['warn', 10],
'max-lines-per-function': ['warn', 50]
}
};
Prettier 配置
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 100,
"tabWidth": 2,
"arrowParens": "avoid"
}
预提交钩子
// package.json
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md}": [
"prettier --write"
]
}
}
Git 钩子设置
# Install husky
npm install --save-dev husky lint-staged
# Initialize husky
npx husky install
# Add pre-commit hook
npx husky add .husky/pre-commit "npx lint-staged"
命名约定
// PascalCase for classes and types
class UserService {}
type UserData = {};
// camelCase for functions and variables
function getUserById() {}
const userName = 'John';
// UPPER_SNAKE_CASE for constants
const MAX_RETRY_COUNT = 3;
const API_BASE_URL = 'https://api.example.com';
// kebab-case for files
// user-service.ts
// api-client.ts
集成点
补充:
- 验证循环: 用于预提交验证
- TDD 工作流: 用于测试标准
- 代码重构模式: 用于样式改进