提交代码时用prettier自动格式化

1、在项目中安装prettier

安装依赖: npm install prettier -D

2、新建prettier.config.js文件

参考配置

module.exports = {
  printWidth: 100, // 换行长度
  semi: true, // 每行末尾自动添加分号
  vueIndentScriptAndStyle: false, // vue文件中的script和style标签的缩进
  singleQuote: true, // 字符串使用单引号
  trailingComma: 'all', // 对象末尾有没有逗号
  proseWrap: 'never', // 代码块换行
  htmlWhitespaceSensitivity: 'strict', // html空白区域的处理
  endOfLine: 'auto', // 换行符类型
};

3. husky自动格式化代码

安装 husky

npm install husky --save-dev

启用 git hooks

npx husky install

执行完之后文件根目录会多一个 .husky 文件夹:
在这里插入图片描述
在安装后自动启用 git hooks

npm set-script prepare "husky install"

加粗样式然后你可以看到 package.json 里增加一个 script

// package.json
{
	"scripts": {
		"prepare": "husky install"
	}
}
“注意一个点:yarn 安装是不支持 prepare 这个生命周期的,需要将 prepare 改成 postinstall。具体可以见官网”

创建一个 precommit hook

npx husky add .husky/pre-commit "npm run lint"
git add .husky/pre-commit

执行完之后在 .husky 目录下会多一个 pre-commit 的文件,里面的 npm run lint 就是这个 hook 要执行的命令,后续要改也可以直接改这个文件。
在这里插入图片描述
这个时候 commit 就会先自动执行 npm run lint 了,然后才会 commit。
但是这样解决了以上的问题,当项目大的时候会遇到一些问题,比如每次 lint 是整个项目的文件,文件太多导致跑的时间过久,另外如果这个 lint 是在项目后期接入的话,可能 lint 命令会报很多错误,全量去改可能会有问题。

注意:当用mac的sourectree提交时报错npm:commandnotfound用以下解决方法

在pre-commit钩⼦中加⼊PATH变量解析
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# 加⼊下⾯这⾏
PATH="/usr/local/bin:$PATH"
npm run lint:staged

4、lint-stadge 只 lint 改动的

基于上面的痛点,lint-stadge 就出现了,它的解决方案就是只检查本次提交所修改(指 git 暂存区里的东西)的问题,这样每次 lint 量就比较小,而且是符合我们的需求的。
安装

npm install -D lint-staged

修改 package.json 配置

{
	"scripts": {
	    "lint:lint-staged": "lint-staged"
	 },
	"lint-staged": {
		"src/**/*.js": "npm run lint"
	}
}

将.husky/pre-commit的执行命令修改为

npm run lint:lint-staged

这样提交代码时就会执行在package.json里面lint-staged的配置了

到现在我们的代码检查工作流就完成了。在 git commit 的时候就自动的回去帮我们跑检查脚本,而且还是只针对我们本次提交的代码进行检查。

vue项目的lint-staged的参考配置

"lint-staged": {
    "**/*.less": "stylelint --syntax less",
    "**/*.{js,vue,ts}": "eslint --ext .js,.vue,.ts",
    "**/*.{js,ts,less,md,json,vue}": [
      "prettier --write",
      "git add"
    ]
  },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值