成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端基于husky通過eslint檢測提交代碼

開發(fā) 前端
當我git commit時,它會自動檢測到不符合規(guī)范的代碼,如果無法自主修復 則會拋出錯誤文件給您!在此之前,配置好 eslint 和 prettier 是有必要的。


What's husky

當您提交或推送時,您可以使用 husky 來檢查您的提交消息、運行測試、檢查代碼等Husky 支持所有 Git 鉤子[1]。

How it works

以一種非常 Linux 的方式,要配置 Git 掛鉤,您只需將可執(zhí)行文本文件放入.git/hooks/, 為了能夠運行用戶在 .huskyrc.js中創(chuàng)建的任何 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并且會自動選擇更改。

不利的一面是,即使沒有任何東西可以運行,節(jié)點也會啟動。

How to use

接下來我會使用 eslint prettier husky 來完成一個提交代碼時觸發(fā)自動化檢測代碼的demo

置代碼風格

eslint 配置代碼風格、質量的校驗,prettier用于代碼格式的校驗,lint-staged 過濾文件

首先明確一下,Lint-staged 僅僅是文件過濾器,不會幫你格式化任何東西,所以沒有代碼規(guī)則配置文件,需要自己配置一下,如:.eslintrc、.stylelintrc等,然后在package.json中引入。

eslint 和 prettier兩者配合使用,即 使用 prettier 做格式化, eslint 做代碼校驗。

第一,ESLint 推出 --fix 參數(shù)前,ESLint 并沒有自動格式化代碼的功能,而 Prettier 可以自動格式化代碼。

第二,雖然 ESLint 也可以校驗代碼格式,但 Prettier 更擅長。

所以還需要 eslint-config-prettier,eslint-plugin-prettier 加強兩者的配合

eslint-plugin-prettier 是一個 ESLint 插件, 由 Prettier 生態(tài)提供,用于報告錯誤給 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, // 設置工具每一個水平縮進的空格數(shù)
useTabs: false,
semi: false, // 句末是否加分號
vueIndentScriptAndStyle: true,
singleQuote: true, // 用單引號
trailingComma: 'none', // 最后一個對象元素加逗號
bracketSpacing: true, // 對象,數(shù)組加空格
jsxBracketSameLine: true, // jsx > 是否另起一行
arrowParens: 'always', // (x) => {} 是否要有小括號
requirePragma: false, // 不需要寫文件開頭的 @prettier
insertPragma: 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并創(chuàng)建一個pre-commit您可以編輯的示例掛鉤。默認情況下,它將npm test在您提交時運行。例如:

image.png

把示例 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"
]
}
復制代碼

例如:

image.png

在 git commit 的時候,就會觸發(fā) .husky/pre-commit 文件下 的命令行 yarn lint-staged或者 您自己定義的命令。

在檢查代碼成功的時候會自動格式化代碼然后幫您提交,如果檢測到錯誤就會停止提交并告知錯誤行,及時改正后可以再次提交。

例如:

image.png

當我git commit時,它會自動檢測到不符合規(guī)范的代碼,如果無法自主修復 則會拋出錯誤文件給您!

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

責任編輯:龐桂玉 來源: 高級前端進階
相關推薦

2022-04-28 09:02:55

Gitcommitlint配置

2009-09-14 09:40:48

微軟Linux代碼

2021-01-22 05:55:12

GitAngularJStype

2020-11-02 08:21:50

Git辦法代碼

2024-04-08 08:37:41

代碼githook

2021-12-07 11:18:40

前端代碼規(guī)范工具開發(fā)

2020-12-14 13:47:53

Linus代碼內核

2024-01-23 11:28:14

Eslint前端Oxlint

2020-11-12 11:55:57

代碼GitJava

2010-09-14 14:58:31

2011-07-20 17:29:12

iPhone 網(wǎng)絡

2017-03-30 10:21:47

jsinspect前端代碼庫

2013-07-27 21:04:58

2020-12-15 17:43:48

Linux 操作系統(tǒng) 開發(fā)

2022-04-07 10:02:58

前端檢測工具

2022-11-02 08:28:05

huskyLinter 工具

2022-02-22 08:29:53

huskylint 工具

2022-05-06 14:52:23

GitHub代碼安全

2021-06-18 13:58:28

ESLint Vue 項目

2024-11-27 10:27:56

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国内精品视频在线观看 | 亚洲经典一区 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 欧美精品久久久久久久久久 | 9久9久9久女女女九九九一九 | 色噜噜亚洲男人的天堂 | 性一区 | 日韩a级片 | 国产乱码精品1区2区3区 | 九九热九九 | 国产伦一区二区三区视频 | 久久久999成人 | 一区二区三区成人 | 91久久网站 | 久久久久黄色 | 最新免费黄色网址 | 午夜视频一区 | 久久99国产精品 | 一级黄色夫妻生活 | 少妇特黄a一区二区三区88av | 在线观看视频91 | 亚洲va中文字幕 | 欧美一a一片一级一片 | 午夜视频免费 | 毛片一区二区 | 国产资源在线观看 | 婷婷久久综合 | 日韩免费一区二区 | 日本在线网址 | 精品国产91乱码一区二区三区 | 狠狠婷婷综合久久久久久妖精 | 中文字幕精品一区二区三区精品 | 久久机热| 亚洲欧美视频一区 | 日韩电影免费观看中文字幕 | 午夜国产| 久久伊人一区 | 中文字幕在线第一页 | 亚洲高清视频一区二区 | 伊人最新网址 | 日日夜夜精品免费视频 |