工程化之 prettier eslint husky commitlint 搭配

1.add prettier(prettier ignore需要添加的話自行上官網(wǎng)查看)

yarn add --dev --exact prettier
echo {}> .prettierrc.json
yarn prettier --write .  (格式化所有文件)
  1. 配合eslint
 yarn add eslint-config-prettier -D

.eslintrc文件中extends添加prettier

module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: ["plugin:vue/essential", "eslint:recommended", "prettier"],  
  parserOptions: {
    parser: "babel-eslint",
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
  },
  overrides: [
    {
      files: [
        "**/__tests__/*.{j,t}s?(x)",
        "**/tests/unit/**/*.spec.{j,t}s?(x)",
      ],
      env: {
        jest: true,
      },
    },
  ],
};
  1. add husky (prettier官網(wǎng)有說明)
    注意:
  • prepare腳本會在執(zhí)行npm install之后自動執(zhí)行。也就是說當我們執(zhí)行npm install安裝完項目依賴后會執(zhí)行 husky install命令
  • 最好手動添加prepare,不然會多一個npm對應(yīng)的package.json.lock:
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint",
    "prepare": "husky install"
  },
yarn add --dev husky lint-staged
npx husky install
npm set-script prepare "husky install"    //prepare腳本會在執(zhí)行npm install之后自動執(zhí)行。也就是說當我們執(zhí)行npm install安裝完項目依賴后會執(zhí)行 husky install命令
npx husky add .husky/pre-commit "yarn lint-staged"

package.json:

"lint-staged": {
    "*.{js,jsx,vue}": [
      "eslint",
      "prettier --write"
    ]
  }
  1. add commit-lint
yarn add --dev @commitlint/{config-conventional,cli}
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
yarn husky add .husky/commit-msg 'yarn commitlint --edit $1'

整體流程就是:

git commit => 執(zhí)行.husky/pre-commit腳本 => 執(zhí)行yarn lint-staged => lint-staged會執(zhí)行eslint和prettier --write =>執(zhí)行.husky/commit-msg腳本 => git commit

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容