IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 前端基于husky通过eslint检测提交代码 -> 正文阅读

[开发工具]前端基于husky通过eslint检测提交代码

What’s husky

当您提交或推送时,您可以使用 husky 来检查您的提交消息运行测试、检查代码等Husky 支持所有 Git 钩子

How it works

以一种非常 Linux 的方式,要配置 Git 挂钩,您只需将可执行文本文件放入.git/hooks/, 为了能够运行用户在 .huskyrc.js中创建的任何 Git 钩子,husky 正在将所有可能的钩子安装在.git/hooks/.

例如,当提交时,每个 Git 钩子都会检查是否有相应的钩子定义.huskyrc.js

$ git commit

pre-commit (native) → husky/runner.js (node)→ is a pre-commit defined in `.huskyrc.js`? → YES, run it

prepare-commit-msg (native) → husky/runner.js (node)→ is a prepare-commit-msg defined in `.huskyrc.js`? → NO, do nothing

commit-msg (native) → husky/runner.js (node)→ is a commit-msg defined in `.huskyrc.js`? → NO, do nothing

post-commit (native) → husky/runner.js (node)→ is a post-commit defined in `.huskyrc.js`? → NO, do nothing 

它的好处:用户可以添加、更新和删除钩子,.huskyrc.js并且会自动选择更改。

不利的一面是,即使没有任何东西可以运行,节点也会启动。

How to use

接下来我会使用 eslint prettier husky 来完成一个提交代码时触发自动化检测代码的demo

置代码风格

eslint 配置代码风格、质量的校验,prettier用于代码格式的校验,lint-staged 过滤文件

首先明确一下,Lint-staged 仅仅是文件过滤器,不会帮你格式化任何东西,所以没有代码规则配置文件,需要自己配置一下,如:.eslintrc.stylelintrc等,然后在package.json中引入。

eslint 和 prettier两者配合使用,即 使用 prettier 做格式化, eslint 做代码校验。

第一,ESLint 推出 --fix 参数前,ESLint 并没有自动格式化代码的功能,而 Prettier 可以自动格式化代码。

第二,虽然 ESLint 也可以校验代码格式,但 Prettier 更擅长。

所以还需要 eslint-config-prettier,eslint-plugin-prettier 加强两者的配合

eslint-plugin-prettier 是一个 ESLint 插件, 由 Prettier 生态提供,用于报告错误给 ESLint

eslint-config-prettier 的作用是使用 Prettier 默认推荐配置,并且关闭 eslint 自身的格式化功能,防止 Prettier 和 ESLint 的自动格式化冲突

安装所需的NPM包

npm i eslint prettier lint-staged eslint-plugin-prettier eslint-config-prettier 

常用的配置.prettier.js

module.exports = {printWidth: 120, // 换行字符串阈值tabWidth: 2, // 设置工具每一个水平缩进的空格数useTabs: false,semi: false, // 句末是否加分号vueIndentScriptAndStyle: true,singleQuote: true, // 用单引号trailingComma: 'none', // 最后一个对象元素加逗号bracketSpacing: true, // 对象,数组加空格jsxBracketSameLine: true, // jsx > 是否另起一行arrowParens: 'always', // (x) => {} 是否要有小括号requirePragma: false, // 不需要写文件开头的 @prettierinsertPragma: false // 不需要自动在文件开头插入 @prettier
} 

.eslintrc.js建议采用自己的项目配置

module.exports = {root: true,env: {browser: true,node: true,es6: true},extends: ['prettier','plugin:prettier/recommended'],rules: {...yourselfConfig}
} 

自动配置 husky

yarn add husky --dev # must install

npx husky-init install # npm 
npx husky-init # Yarn 1 
yarn dlx husky-init# Yarn 2+ 
pnpm dlx husky-init# pnpm 

它将设置 husky,修改package.json并创建一个pre-commit您可以编辑的示例挂钩。默认情况下,它将npm test在您提交时运行。 例如:

把示例 npm test 修改成 yarn lint-staged 或者 您自己定义的命令

package.json中添加 lint-staged命令

"lint-staged": "lint-staged --allow-empty",
"lint-staged:js": "eslint --ext .js,.jsx,.ts,.tsx ",
"lint-staged": {"**/*.{js,jsx,ts,tsx}": "yarn run lint-staged:js","**/*.{js,jsx,tsx,ts,less,md,json}": ["prettier --write"]}, 

例如

在 git commit 的时候,就会触发 .husky/pre-commit 文件下 的命令行 yarn lint-staged或者 您自己定义的命令

在检查代码成功的时候会自动格式化代码然后帮您提交,如果检测到错误就会停止提交并告知错误行,及时改正后可以再次提交

例如

当我git commit时,它会自动检测到不符合规范的代码,如果无法自主修复 则会抛出错误文件给您!

在此之前,配置好 eslint 和 prettier 是有必要的~

最后

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:55:18  更:2022-10-17 12:58:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:17:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码