一、规范代码质量

安装并配置所有代码质量工具,如 Prettier 和 ESLint。

然后快速生成 lint-staged 配置:

  1. npx mrm@2 lint-staged

上述命令会根据 package.json 中依赖项的代码质量工具安装和配置 huskylint-staged。记住需将 package.json 和 .husky 的更改添加至 git 管理中,方便团队共享此配置。

package.json

  1. "lint-staged": {
  2. "app/**/*.{js,json}": [
  3. "prettier --write",
  4. "eslint --cache --fix",
  5. "npm run lint",
  6. "npm run test"
  7. ]
  8. }

.husky/pre-commit
此配置,是 mrm 自动生成的。

  1. #!/bin/sh
  2. . "$(dirname "$0")/_/husky.sh"
  3. npx lint-staged

注:

lint-staged 是一个在 git 暂存文件(注:在暂存区) 运行 linters 的工具。当然如果你觉得每次修改一个文件就给所有文件执行一次 lint 检查恶心的话,这个工具对你来说就没有什么意义了,请直接关闭即可。

二、与 ESLint 冲突

当使用 Prettier 插件对代码格式化的时候,会遇到与 ESLint 规则冲突的情况,针对这一问题,有两种解决方案。

方案一:配置 **.prettierrc** 文件
针对 Prettier 插件与 ESLint 规则冲突的地方,创建 .prettierrc 文件,按照 ESLint 规则修改 Prettier 插件的格式化规则,如下所示。

  1. {
  2. "arrowParens": "avoid",
  3. "singleQuote": true,
  4. "printWidth": 100
  5. }

方案二:配置 **.eslintrc** 文件
针对 Prettier 插件与 ESLint 规则冲突的地方,还可以修改 .eslintrc 文件,关闭一些不符合内部团队编码规范的 ESLint 规则,如下所示。

  1. {
  2. "extends": "eslint-config-egg",
  3. "rules": {
  4. "array-bracket-spacing": ["error", "never"] // 中括号无空格
  5. }
  6. }