相信很多开发者都遇到过这样的问题:多人协作的项目,代码风格不统一,commit 历史混乱,review 起来痛苦不堪。尤其是在 gh_mirrors/pl/playground 这种多人参与的开源项目中,如果没有一套完善的代码质量保障体系,很容易产生“屎山代码”。本文将介绍如何使用 ESLint 和 Prettier 打造规范的代码库,提升代码质量,提高开发效率。
ESLint:代码静态检查利器
ESLint 是一款强大的 JavaScript 静态代码分析工具,它可以帮助我们发现代码中的潜在问题,例如:
- 语法错误
- 未使用的变量
- 不符合规范的写法
ESLint 配置
首先,我们需要安装 ESLint 和相关的插件:
npm install eslint --save-dev
然后,创建一个 .eslintrc.js 文件,配置 ESLint 的规则:
module.exports = {
env: {
browser: true,
es2021: true,
node: true
},
extends: [
'eslint:recommended',
'plugin:react/recommended'
],
parserOptions: {
ecmaFeatures: {
jsx: true
},
ecmaVersion: 12,
sourceType: 'module'
},
plugins: [
'react'
],
rules: {
'no-unused-vars': 'warn', // 未使用的变量发出警告
'no-console': 'warn', // 禁止使用 console
'react/prop-types': 'off' // 关闭 prop-types 检查
}
};
在这个配置文件中,我们指定了 ESLint 的运行环境、扩展使用的规则集、解析器选项以及自定义的规则。 eslint:recommended 是 ESLint 官方推荐的规则集, plugin:react/recommended 是 React 官方推荐的规则集。通过 rules 字段,我们可以自定义规则,例如禁用 console.log 语句,或者将未使用的变量视为警告而不是错误。
实战避坑:解决 ESLint 冲突
在使用 ESLint 的过程中,可能会遇到各种各样的冲突,例如规则冲突、插件冲突等。解决冲突的关键是仔细阅读 ESLint 的错误提示,并根据错误提示修改配置文件。可以使用 // eslint-disable-next-line 临时禁用某行代码的 ESLint 检查。
Prettier:代码格式化神器
Prettier 是一款代码格式化工具,它可以自动格式化代码,使其符合统一的风格。使用 Prettier 可以大大减少代码 review 的工作量,提高开发效率。
Prettier 配置
首先,我们需要安装 Prettier:
npm install prettier --save-dev
然后,创建一个 .prettierrc.js 文件,配置 Prettier 的规则:
module.exports = {
semi: false, // 去掉分号
singleQuote: true, // 使用单引号
trailingComma: 'all', // 尽可能使用尾随逗号
printWidth: 120 // 超过长度换行
};
集成 ESLint 和 Prettier
为了更好地集成 ESLint 和 Prettier,我们需要安装以下插件:
npm install eslint-plugin-prettier eslint-config-prettier --save-dev
然后,修改 .eslintrc.js 文件,添加 plugin:prettier/recommended:
module.exports = {
// ... 其他配置
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:prettier/recommended' // 添加 prettier 插件
],
// ... 其他配置
};
eslint-plugin-prettier 将 Prettier 的格式化规则作为 ESLint 的规则来执行, eslint-config-prettier 禁用所有与 Prettier 冲突的 ESLint 规则。这样,ESLint 就可以使用 Prettier 来格式化代码了。
实战避坑:Git Hook 自动格式化
为了保证每次提交的代码都是符合规范的,我们可以使用 Git Hook 在提交之前自动格式化代码。可以使用 husky 和 lint-staged 来实现这个功能。
首先,安装 husky 和 lint-staged:
npm install husky lint-staged --save-dev
然后,在 package.json 文件中添加以下配置:
{
// ... 其他配置
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,jsx,ts,tsx,json,css,scss,md}": [
"prettier --write",
"eslint --fix"
]
}
}
这样,每次提交代码之前,lint-staged 就会自动格式化代码,并使用 ESLint 修复代码中的问题。
总结
通过使用 ESLint 和 Prettier,我们可以打造一个规范的代码库,提高代码质量,减少代码 review 的工作量,提高开发效率。在 gh_mirrors/pl/playground 这样的开源项目中,代码规范尤为重要。希望本文能帮助你更好地管理代码,提升开发体验。
在实际应用中,可以结合 Nginx 做静态资源服务器,利用其反向代理和负载均衡特性,提高 playground 的访问速度和稳定性。同时,可以使用宝塔面板简化服务器管理,监控 Nginx 的并发连接数,及时发现和解决性能问题。ESLint+Prettier 只是代码质量保障的第一步,更重要的是团队成员达成共识,共同维护代码规范。
冠军资讯
不想写注释