可是須要知道的是,開發規範不只僅包含代碼格式規範,還有不少內容,這裏只是單獨說明代碼格式化規範而已。
eslint —fix
的增強版)鑑於網上文章說明的比較混亂,這裏主要是爲了梳理整個流程和思路,而後對比網上的文章從新理解和學習 eslint 和 prettier 和代碼檢查和代碼格式化。
統一團隊使用的開發工具(ide 編輯器)javascript
配置 eslint 和 prettierhtml
開發工具能夠作不少東西,是開發代碼的利器,可是不一樣的開發工具會有不一樣的代碼提示,代碼格式化,代碼檢查的機制,這樣的差別化會對團隊代碼規範(開發和檢查)帶來不少問題,因此須要統一。前端
固然,若是我的不肯意更換本身用慣的開發工具的話,也不要緊,只要可以作到跟團隊的開發規範保持一致也是能夠的,但我的以爲,這樣難度比較大,畢竟開發工具和團隊的開發規範不那麼容易融合。
這裏只說明前端業界目前最經常使用的兩種開發工具來作例子,分別是 webstorm 和 vscode。vue
~webstorm 或者 vscode 分別安裝好以後須要安裝eslint 插件和 prettier 插件。~java
更多配置方式參考: WebStorm Setup · Prettier
根據官方介紹webstorm 分別有2種處理:node
若是用IntelliJ IDEA, PhpStorm, PyCharm, and other JetBrains IDEs, 則須要安裝prettier插件和 eslint 插件,而webstorm 的話默認會幫你安裝上。
官方默認已經集成了 prettier 支持,只須要配置好一個全局的 prettier 模塊調用方式就可使用了(必須配置)。react
[image:92501044-1ADD-41CB-BD0C-A08BF017856E-2833-0000064BE8D16DB1/5CC2BD82-B4E3-459A-A96A-8652870832E8.png]
git
快捷鍵是:Alt-Shift-Cmd-P on macOS or Alt-Shift-Ctrl-P on Windows and Linux
github
氪金王的好處,升級快,支持快,免破解,省心省力不省錢!
這個版本有2種狀況:web
eslint-plugin-prettier
插件和啓用eslint 插件配合,這裏至關於使用 eslint 模塊來驅動 prettier 模塊,而後中間驅動則是靠eslint-plugin-prettier
。首先啓用 eslint,而且配置 eslint 模塊位置,默認會自動讀取當前目錄的 eslint.rc
配置文件,而後須要進行 npm 安裝eslint-plugin-prettier
這個插件,後面再統一說明。
[image:45E71C29-2933-4178-8B54-1624D7BDE6ED-2833-0000080224C7A18F/F82912F6-0F7C-4D89-9A2C-EA1C8CF41469.png]
[image:EB38EB6E-FB83-4C2B-B3FE-005FB45D1B81-2833-00000778833EC282/223C3C42-AE59-4501-9119-E44ACB0C38EE.png]
[image:BE8CDA11-63C4-4661-93BB-146299063BD9-2833-0000077989F51D06/2DE327F9-2274-448E-816A-D53057B4FB6F.png]
上面兩種方式的默認快捷鍵都是Cmd/Ctrl-Shift-A
(在 mac 下是 comm+shift+A
),以爲不舒服,按需修改快捷鍵便可。
[image:BD12F495-B168-485D-9E1B-CA30E07D4917-2833-000007DCC3947E10/36E1EB4E-769A-456D-B7F4-C1C61FD76086.png]
打開 VSCode 擴展面板並搜索 ESLint 插件 和 prettier 插件,而後點擊安裝。(prettier 插件沒截圖,但相似)
[image:478E5E36-1056-4C77-8D98-D009559070CB-2833-000008A49B4C4EFC/D8C1E6E5-619D-48BA-93C8-EBA1091B9FBD.png]
安裝完畢以後點擊 ~從新加載~ 以激活插件。
vscode 的快捷鍵:
CMD + Shift + P -> Format Document
或者
CMD + Shift + P -> Format Selection
官網有詳細介紹:GitHub - prettier/prettier-vscode: Visual Studio Code extension for Prettier
安裝這個模塊的意義在於,實際上,整個流程最核心就是這個地方,開發工具雖然支持了這2個模塊,可是最終運行是必需要以這2個模塊安裝好才能使用的。
這是 node 的模塊,用 nam 或者 yarn 的方式安裝,如下是以 npm 安裝爲例。
nam -g install eslint eslint-plugin-prettier eslint-config-prettier babel-eslint prettier eslint-plugin-html --save-dev
-g
是由於這些都是全局使用的模塊(尤爲是 eslint 和 prettier),不用每次重複安裝,並且也容易被開發工具找到,固然也能夠選擇不用-g
,自行處理模塊位置。eslint-plugin-prettier 是以前說過,這裏從新說明一下:
eslint-config-prettier :
babel-eslint :
eslint-plugin-html:
.vue
文件的代碼。eslint 的檢查規則是經過配置文件.eslintrc
實現的,可是各家有各家的 eslint 配置文件GitHub - AlloyTeam/eslint-config-alloy: AlloyTeam ESLint 規則:
[image:183FFECA-1463-4847-995C-7968ACB07CDE-2833-00000FC1A80835A6/A9CB9340-A21E-42C9-ADF2-76B4351FA7D2.png]
詳細參考網址:
不過這裏不糾結用哪種 eslint 的配置,具體看項目和團隊,這裏只是說明須要作 eslint 的配置,而且須要作一些說明:
.eslintrc
配置文件須要添加修改地方,主要是爲了 prettier插件和eslint-config-prettier 插件和eslint-plugin-prettier插件使用的:
// 原extends: 'eslint:recommended', extends: ['prettier', 'eslint:recommended'], // required to lint *.vue files 使用 html參數 plugins: ['html', 'prettier'],
在 webstorm 下:
.eslintrc
做爲配置文件。在 vscode 下:
.eslintrc
做爲配置文件。文件 > 首選項 > 設置
打開 vscode 配置文件,而後配置指定使用哪一個 eslintrc 文件做爲 vscode 的配置文件。[image:21128230-D925-4913-9B21-68C26C371CB6-2833-000010E826578238/162A9A99-B87A-469B-82FD-A570A7352937.png]
[image:BB2B7C90-692F-4731-93DC-D48E5E5F63FD-2833-000010E936A05A4C/6566C009-8837-4BA7-BC56-4F8EEF8AA928.png]
"eslint.options": { "configFile": "E:/git/github/styleguide/eslint/.eslintrc.js" },
.vue
、.ts
或 .tsx
文件,須要在「文件 => 首選項 => 設置」裏作以下配置:{ "eslint.validate": [ "javascript", "javascriptreact", "html", "vue", "typescript", "typescriptreact" ] }
詳細參考:使用 VSCode + ESLint 實踐前端編碼規範 - decoder - SegmentFault 思否
prettier 的檢查規則是經過配置文件.prettierrc
實現的,不過通常來講,只須要配置少部分規則便可:
{ "printWidth": 100, "singleQuote": true, // 這個地方須要跟 eslint 的規則保持一致 "semi": false // 這個地方須要跟 eslint 的規則保持一致 }
官方有詳細的介紹:Configuration File · Prettier
這個配置在 webstorm 下和 vscode 都同樣。
對此我我的的理解就是,editorconfig能夠協助開發工具在自動格式化或者自動排版或者錄入排版的時候進行代碼格式化,可是隻能支持比較簡單的規則,不過也減輕了一部分代碼格式化的壓力和成本,因此有比沒有好,並且最好要有。
// 放在項目根目錄的.editorconfig文件 root = true [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true
詳細參考:
須要明確一點,代碼格式化須要由上而下執行,若是沒有強制性壓力督促,那麼是對抗不了人類的惰性的。
整個代碼檢查和格式化流程應該規範爲以下步驟:
參考文檔:
原文轉載:梳理前端開發使用 eslint+prettier 檢查和格式化代碼 | 線上猛如虎,線下慫如鼠(WhyNotBetter)