prettier+lint-staged+husky提交(commit)时格式化代码格式

文章介绍了如何在项目中安装和配置Prettier、Lint-Staged和Husky,以实现在gitcommit前自动执行代码格式化和检查。主要步骤包括安装依赖、编写配置文件、修改package.json、添加校验命令以及处理可能出现的报错问题。
摘要由CSDN通过智能技术生成

安装依赖

yarn add prettier lint-staged husky -D;

执行命令

  1. npx husky install
  2. npx husky add .husky/pre-commit "npx lint-staged"
    在根目录下生成 .husky 文件夹;此文件是在commit时运行的检测脚本

添加 配置文件(.prettierrc.js) & 忽略文件(.prettierignore) (在 package.json 同级目录)

  • 配置文件(.prettierrc.js)
// .prettierrc.js
module.exports = {
  semi: true, // 使用分号, 默认true
  singleQuote: false, // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号)
  trailingComma: 'all', // 行尾逗号,默认none,可选 none|es5|all
  printWidth: 200,
  tabWidth: 2, // tab缩进大小,默认为2
  useTabs: false, // 使用tab缩进,默认false
  quoteProps: 'consistent',
  bracketSpacing: true,
  arrowParens: 'always',
  htmlWhitespaceSensitivity: 'ignore',
  vueIndentScriptAndStyle: true,
}
  • 忽略文件(.prettierignore)
// .prettierignore
.DS_Store
node_modules
/dist
/dist.zip
/yarn.lock
/package-lock.json
/public/luckysheet

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

修改 package.json 配置

"lint-staged": {
    "*.{js,css,html,json,vue}": [
          "prettier --config .prettierrc.js --write",
          "git add"
      ]
  },
  "husky": {
      "hooks": {
          "pre-commit": "lint-staged"
      }
  },

  • 至此配置就完成了,当执行 git commit 时,prettier就会执行代码格式化

优化

添加校验命令

添加 (package.json) 方便执行检验项目所有文件排版格式;

"scripts": {
    "lint:prettier": "npx prettier --config ./.prettierrc.js --ignore-path ./.prettierignore --write **/*.{js,css,html,json,vue,jsx,tsx}"
 }

上传.sh .husky 生成命令生成的脚本

  • 将命令生成文件下的忽略文件 /.husky/_/.gitignore 文件删除或做对应的修改;

报错

  1. Prettier 只支持 ES 模块
    • 删除 package.json 中的 "type": "module" 配置;
      在这里插入图片描述
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值