Skip to content

Latest commit

 

History

History
97 lines (74 loc) · 2.41 KB

eslint-prettier.md

File metadata and controls

97 lines (74 loc) · 2.41 KB

Eslint 和 Prettier 配置自动格式化代码

Eslint 可以提供代码检查,而 Prettier 能够统一团队代码风格,两者结合在一起会事半功倍。

安装依赖

npm install prettier babel-eslint eslint eslint-config-prettier eslint-plugin-flowtype eslint-plugin-prettier eslint-plugin-import  --save-dev
  • eslint-config-prettier 可以取消 eslint 和 prettier 冲突的配置项,采用 prettier 风格
  • eslint-plugin-prettier 可以将 prettier 的格式化规则作为 eslint 的检查规则

相关配置文件

新建 Eslint 和 Prettier 的配置件:

touch .eslintrc
touch .prettierrc

在.eslintrc 写入一下内容:

{
    "parser": "babel-eslint",
    "extends": [
        "prettier",
        "prettier/flowtype" // if you are using flow
    ],
    "rules": {
        "indent": ["error", 2],
        "prettier/prettier": "error"
    },
    "plugins": [
        /* Flow type linting rules for ESLint. */
        "flowtype",
        "prettier"
    ]
}

eslint 规则是完全可配置的,其级别为:

  • "off" 或 0 - 关闭规则
  • "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
  • "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)

更多配置项见 https://cn.eslint.org/docs/user-guide/configuring

在.prettierrc 写入以下内容:

{
    "tabWidth": 2,
    "singleQuote": true
}

更多配置项见 https://prettier.io/docs/en/configuration.html

开发工具的配置

例如,将以下配置加入配置文件:

    {
        "editor.formatOnSave": true,
        "prettier.disableLanguages": ["js"],
        "eslint.autoFixOnSave": true,
        "eslint.alwaysShowStatus": true
    }

使用 Husky + Lint-Staged 在代码提交前自定检查并修正代码

  • 由于 husky 在 .git/hooks 中写入了 pre-commit 钩子,该钩子在 git commit 执行时被触发
  • lint-staged 利用配置的文件过滤路径,对暂存区文件一个个进行匹配,匹配成功时,运行 eslint –fix 并自动将修改添加到暂存区
yarn add  precommit husky --dev

在 package.json 添加配置

	"scripts": {
        "precommit": "lint-staged" //husky 在 .git/hooks 中写入了 钩子
    },
    "lint-staged": {
        "src/**/*.js": [
            "prettier --write",
            "git add"
        ]
    },