国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
eslint
效果
prettier
設定自動格式化
lint-staged
首頁 常見問題 2023年值得了解的幾個前端格式化工具【總結(jié)】

2023年值得了解的幾個前端格式化工具【總結(jié)】

Sep 30, 2022 pm 02:17 PM
javascript vue.js 架構(gòu)

2023年值得了解的幾個前端格式化工具【總結(jié)】

在大前端時代,前端的各種工具鏈窮出不斷,有eslint, prettier, husky, commitlint 等, 東西太多有的時候也是trouble???,怎麼正確的使用這個是每一個前端開發(fā)者都需要掌握的內(nèi)容,請上車? ??

eslint

本次前端工程化的項目是基於react來的,vue用戶也是同樣的道理,只是有個別的依賴包不一樣。

使用eslint的生態(tài)鏈來規(guī)範開發(fā)者對js/ts基本語法的規(guī)格。防止團隊的成員亂寫.

這裡主要使用到的eslint的套件有以下幾個:

"eslint": "^8.33.0",  // 這個是eslint的主包
"eslint-plugin-react": "^7.32.2",  // 這是react基于eslint來做的語法規(guī)范插件
"eslint-plugin-react-hooks": "^4.6.0", // 這是 react-hooks 語法基于eslint做的插件
"@typescript-eslint/eslint-plugin": "^5.50.0",  // typescript 基于eslint來做的插件
"@typescript-eslint/parser": "^5.50.0",  // typescript 基于eslint做的語法解析器,使得eslint可以約束ts語法

使用的以下語句來按照依賴:

pnpm i eslint eslint-plugin-react eslint-plugin-react-hooks @typescript-eslint/parser @typescript-eslint/eslint-plugin -D

接下來需要對eslint的規(guī)格寫入設定檔中,可以在專案的根目錄下方建立一個.eslintrc.cjs

module.exports = {
    'env': {
        'node': true,   // 標志當前的環(huán)境,不然使用module.exports 會報錯
        'es2021': true
    },
    extends: [
      'eslint:recommended',  // 使用eslint推薦的語法規(guī)范
      'plugin:react/recommended',  // react推薦的語法規(guī)范
      'plugin:@typescript-eslint/recommended' // ts推薦的語法規(guī)范
    ],
    parser: '@typescript-eslint/parser',  // 使用解析器來解析ts的代碼,使得eslint可以規(guī)范ts的代碼
    parserOptions: {
      ecmaFeatures: {
        jsx: true  // 允許使用jsx的語法
      },
      ecmaVersion: 'latest',  // es的版本為最新版本
      sourceType: 'module'  // 代碼的模塊化方式,使用module的模塊方式
    },
    plugins: ['react', '@typescript-eslint', 'react-hooks'],  // 使用對應的react, react-hooks, @typescript-eslint 等插件
    rules: {
      quotes: ['error', 'single'],  // 配置單引號的規(guī)則,如果不是單引號,報錯
      semi: 'off',  //  不需要使用分號;
      'react/react-in-jsx-scope': 'off'  // 在jsx中不需要導入 react的包
    }
  }

接下來在package.json 的scripts 中加入一條指令

"lint": "eslint --ext .ts,.tsx,.js,.jsx ./" // 使用eslint 規(guī)范 ts,tsx,js,jsx的代碼

效果

2023年值得了解的幾個前端格式化工具【總結(jié)】

程式碼中的不規(guī)範的格式就暴露出來了,現(xiàn)在可以來修復並且格式化程式碼。但在格式化程式碼方面,prettier做的更好點,所以咱們來使用prettier來進行程式碼格式化

prettier

prettier 是一款開源的程式碼格式化包,支援多種程式碼編寫工具,常見的vscode, webstorm 等,他都是支援的,那麼怎麼給他集成起來呢?

使用下面語句來安裝依賴:

pnpm i prettier eslint-plugin-prettier eslint-config-prettier

下面來解釋下,這些套件是乾啥用的,不然稀里糊塗安裝了它

"prettier": "^2.8.3",  // prettier 主包
"eslint-config-prettier": "^8.6.0",  // eslint 和prettier的共同配置
"eslint-plugin-prettier": "^4.2.1",  // 在eslint當中,使用prettier為插件,才能一起使用

安裝好依賴後,咱們也需要在eslitrc.cjs中加入prettier的設定如下:

{
 extends:[
 ...,
+ 'prettier', // prettier
+ 'plugin:prettier/recommended' // prettier推薦的配置  
 ],
+ plugins:[...,'prettier'],
rules: {
+    'prettier/prettier': 'error', // eslint 和prettier 用prettier的錯誤
    }
}

接下來在package.json中加入一段腳本

+ "prettier": "eslint --fix --ext .ts,.tsx,.js,.jsx --quiet ./"

此時,咱們還需要配置哪些檔案是不需要進行程式碼格式化的,所以在根目錄下方建立.prettierignore增加如下:

node_modules
package.json
pnpm-lock.yaml
dist

效果

2023年值得了解的幾個前端格式化工具【總結(jié)】

修復成功,但這裡也報了一個警告,這個的解決方法如下:

#在eslintrc.cjs的最後增加上一段配置如下:

+ settings: {
+    react: {
+      version: 'detect'
+    }
+  }

2023年值得了解的幾個前端格式化工具【總結(jié)】

設定自動格式化

每次都需要在終端機執(zhí)行腳本,有點小複雜,能不能設定自動格式化呢?

答案是可以的

  1. 開啟設定

2023年值得了解的幾個前端格式化工具【總結(jié)】

  1. ##fomatter,然後選取文字編譯器後,選擇prettier-Code formatter

2023年值得了解的幾個前端格式化工具【總結(jié)】

2023年值得了解的幾個前端格式化工具【總結(jié)】

2023年值得了解的幾個前端格式化工具【總結(jié)】

##然後搜尋formate on save,選取即可

2023年值得了解的幾個前端格式化工具【總結(jié)】

#就可以出現(xiàn)下面的效果了:

ctrl s 會自動的格式化程式碼喔???

2023年值得了解的幾個前端格式化工具【總結(jié)】husky

到上面為止,代碼的格式化工具和代碼規(guī)範檢查就好了,這是本地的,所以咱們還需要在提交代碼的時候,在commit 之前,進行prettier 操作,就不需要手動啦。 使用腳本安裝下面的依賴套件<pre class='brush:php;toolbar:false;'>pnpm i husky -D</pre>我們在終端機透過 npx husky install 來初始化 husky

###### #######我們還需要產(chǎn)生###pre-commit###鉤子的時候來執(zhí)行###npm run lint######
npx husky add .husky/pre-commit "npm run lint"  // 這句話的意思是說,在commit之前先執(zhí)行 npm run lint腳本
###安裝完成後,會在.husky 目錄新增一個檔案###pre-commit##################要注意的是,我們需要在###package.json### 註冊### prepare### 指令,在專案進行###pnpm i### 之後就行###Huksy### 的安裝,指令如下:###
+ "prepare": "husky install"

上面咱們是自己手動 npx husky install的,我們需要讓后面使用咱們配置的人自動來初始化 husky

但是大家如果再深入一步,就會想到???。既然我內(nèi)容都管控好了,是不是需要把 commit -m &#39;xxx&#39; 中的msg 也管控下呀???

使用下面的命令來安裝包:

pnpm i commitlint @commitlint/cli @commitlint/config-conventional -D

包意思解析

 "@commitlint/cli": "^17.4.2", // 規(guī)范提交信息
 "@commitlint/config-conventional": "^17.4.2",  // commitlint 常用的msg配置
 "commitlint": "^17.4.2" // commitlint 主包

安裝好這些包后,需要在根目錄添加一個 .commitlintrc.cjs來配置咱們的commitlint的配置:

module.exports = {
  extends: [&#39;@commitlint/config-conventional&#39;]
}

有了這些配置,commit是否生效呢?

答案是 no, 還需要在git hooks中添加一個方法

在終端執(zhí)行下面的命令

npx husky add .husky/commit-msg &#39;npx --no-install commitlint --edit "$1"&#39;

然后會在.husky中生成一個新的文件commit-msg

2023年值得了解的幾個前端格式化工具【總結(jié)】

效果

接下來就是見證奇跡的時刻???

2023年值得了解的幾個前端格式化工具【總結(jié)】

對于亂寫commit 信息就過不了哦???

lint-staged

對于細心的同學可能會發(fā)現(xiàn),我們每一次提交都會 prettier整個目錄的所有問題,大大的降低了咱們編碼的速度。所以咱們還需要做一件事情,那就是 只格式化需要提交的代碼,其他的就不需要格式化了

使用下面命令安裝依賴

pnpm i lint-staged -D

然后在package.json中新增如下內(nèi)容

+ "lint-staged": {
+     "**/*.{js,jsx,tsx,ts}": [  
+          "eslint --fix"
+       ]
+    }

上面那段腳本的意思是 只對 .js,.jsx, .ts,.tsx 后綴文件進行eslint的修復,其他的就不進行格式化和修復了

有了這個,還需要對 pre-commit 這個鉤子就行修改內(nèi)容

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

- npm run lint
+ npx --no -- lint-staged

如此就大功告成啦???

2023年值得了解的幾個前端格式化工具【總結(jié)】

(學習視頻分享:web前端入門

以上是2023年值得了解的幾個前端格式化工具【總結(jié)】的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
Spring Data JPA 的架構(gòu)和工作原理是什麼? Spring Data JPA 的架構(gòu)和工作原理是什麼? Apr 17, 2024 pm 02:48 PM

SpringDataJPA基於JPA架構(gòu),透過映射、ORM和事務管理與資料庫互動。其儲存庫提供CRUD操作,派生查詢簡化了資料庫存取。此外,它使用延遲加載,僅在必要時檢索數(shù)據(jù),從而提高了效能。

手撕Llama3第1層: 從零開始實現(xiàn)llama3 手撕Llama3第1層: 從零開始實現(xiàn)llama3 Jun 01, 2024 pm 05:45 PM

一、Llama3的架構(gòu)在本系列文章中,我們從頭開始實作llama3。 Llama3的整體架構(gòu):圖片Llama3的模型參數(shù):讓我們來看看這些參數(shù)在LlaMa3模型中的實際數(shù)值。圖片[1]上下文視窗(context-window)在實例化LlaMa類別時,變數(shù)max_seq_len定義了context-window。類別中還有其他參數(shù),但這個參數(shù)與transformer模型的關係最為直接。這裡的max_seq_len是8K。圖片[2]字彙量(Vocabulary-size)和注意力層(AttentionL

1.3ms耗時!清華最新開源行動裝置神經(jīng)網(wǎng)路架構(gòu) RepViT 1.3ms耗時!清華最新開源行動裝置神經(jīng)網(wǎng)路架構(gòu) RepViT Mar 11, 2024 pm 12:07 PM

論文地址:https://arxiv.org/abs/2307.09283代碼地址:https://github.com/THU-MIG/RepViTRepViT在移動端ViT架構(gòu)中表現(xiàn)出色,展現(xiàn)出顯著的優(yōu)勢。接下來,我們將探討本研究的貢獻所在。文中提到,輕量級ViTs通常比輕量級CNNs在視覺任務上表現(xiàn)得更好,這主要歸功于它們的多頭自注意力模塊(MSHA)可以讓模型學習全局表示。然而,輕量級ViTs和輕量級CNNs之間的架構(gòu)差異尚未得到充分研究。在這項研究中,作者們通過整合輕量級ViTs的有效

vue.js vs.反應:特定於項目的考慮因素 vue.js vs.反應:特定於項目的考慮因素 Apr 09, 2025 am 12:01 AM

Vue.js適合中小型項目和快速迭代,React適用於大型複雜應用。 1)Vue.js易於上手,適用於團隊經(jīng)驗不足或項目規(guī)模較小的情況。 2)React的生態(tài)系統(tǒng)更豐富,適合有高性能需求和復雜功能需求的項目。

golang框架架構(gòu)的學習曲線有多陡峭? golang框架架構(gòu)的學習曲線有多陡峭? Jun 05, 2024 pm 06:59 PM

Go框架架構(gòu)的學習曲線取決於對Go語言和後端開發(fā)的熟悉程度以及所選框架的複雜性:對Go語言的基礎知識有較好的理解。具有後端開發(fā)經(jīng)驗會有所幫助。複雜度不同的框架導致學習曲線差異。

Vue.js很難學習嗎? Vue.js很難學習嗎? Apr 04, 2025 am 12:02 AM

Vue.js不難學,特別是對於有JavaScript基礎的開發(fā)者。 1)其漸進式設計和響應式系統(tǒng)簡化了開發(fā)過程。 2)組件化開發(fā)讓代碼管理更高效。 3)使用示例展示了基本和高級用法。 4)常見錯誤可以通過VueDevtools調(diào)試。 5)性能優(yōu)化和最佳實踐如使用v-if/v-show和key屬性可提升應用效率。

Linux體系結(jié)構(gòu):揭示5個基本組件 Linux體系結(jié)構(gòu):揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統(tǒng)的五個基本組件是:1.內(nèi)核,2.系統(tǒng)庫,3.系統(tǒng)實用程序,4.圖形用戶界面,5.應用程序。內(nèi)核管理硬件資源,系統(tǒng)庫提供預編譯函數(shù),系統(tǒng)實用程序用於系統(tǒng)管理,GUI提供可視化交互,應用程序利用這些組件實現(xiàn)功能。

VUE是用於前端還是後端? VUE是用於前端還是後端? Apr 03, 2025 am 12:07 AM

Vue.js主要用於前端開發(fā)。 1)它是一個輕量級且靈活的JavaScript框架,專注於構(gòu)建用戶界面和單頁面應用。 2)Vue.js的核心是其響應式數(shù)據(jù)系統(tǒng),數(shù)據(jù)變化時視圖自動更新。 3)它支持組件化開發(fā),UI可拆分為獨立、可複用的組件。