前端开发那些事儿

lint-staged + prettier + gitHook

2021-07-29  本文已影响0人  small_zeo

介绍

一. lint-staged

为什么使用 lint-staged ?

在commit代码之前运行Linting更有意义,这样可以确保没有错误格式的代码提交到仓库;但是在整个项目中运行一个lint校验的进程会很缓慢,而且lint的结果可能不相关,然而其实你只希望lint校验将要提交的文件。

lint-staged项目中有一个可以运行任意shell任务的脚本,并将暂存文件作为参数,通过指定的glob模式过滤。

package.json中配置
{
  "lint-staged": {
    "*": "your-cmd"
  }
}

二. prettier

将Prettier与一个pre-commit的工具(例: gitHooks)一起使用,在commit代码之前通过git add重新格式化标记为“暂存”的文件。

 "scripts": {
    "format": "prettier --write ."  // your-cmd, 需手动添加额外的文件类型,默认为js,css,md
  },

三.gitHooks

git commit 时触发 pre-commit 钩子,运行 lint-staged 命令。

"gitHooks": {
    "pre-commit": "lint-staged --concurrent false" 
  }

示例

Installation
npm install lint-staged prettier --save-dev

例如:

 "scripts": {   
    "format": "prettier --write ."  // your-cmd
  },
  "lint-staged": {
    "*": [
      "prettier --write" 
    ]
  },
  "gitHooks": {
    "pre-commit": "lint-staged --concurrent false" 
  }
在根目录创建.prettierrc.json

创建Prettier的配置文件,让编辑器和其他工具知道项目正在使用Prettier
例如:

{
  "semi": false,
  "tabWidth": 2,
  "singleQuote": true,
  "printWidth": 80,
  "trailingComma": "none",
  "overrides": [
    {
      "files": ["*.json5"],
      "options": {
        "singleQuote": false,
        "quoteProps": "preserve"
      }
    },
    {
      "files": ["*.yml"],
      "options": {
        "singleQuote": false
      }
    }
  ]
}
在根目录创建.prettierignore文件

创建一个.prettierignore文件,让Prettier CLI和编辑器知道哪些文件不需要格式化。
例:

packages/plugin-vue/dist/
packages/*/CHANGELOG.md
LICENSE.md
.prettierignore
yarn.lock
命令行执行 npm run format

执行npm run format,就可以按照.prettierrc.json中的规则对代码进行格式化了。

小结

参考资料

lint-staged - npm
prettier - npm
prettier - 规则选项
一文带你彻底学会 Git Hooks 配置

上一篇 下一篇

猜你喜欢

热点阅读