VSCode中 Eslint 和 Prettier 沖突問題最新解決方法
前言
本次環境皆為 @vue/cli
默認安裝帶有的 [email protected]
,VSCode
插件版本:
Eslint v2.4.0
Prettier v9.10.4
為什麼會沖突
首先我們需要知道為什麼使用Eslint
和 Prettier
,下面先介紹兩者的單獨用法
Eslint
Javascript
Vue
Typescript
等文件的代碼規范檢測工具,當代碼寫法不符合時,會在終端進行報錯提醒,阻止你的serve
服務。為瞭在 VSCode
中檢測到我們代碼不規范時,能自動修復錯誤寫法,我們需要安裝 VSCode
的插件 ESLint
安裝後在 setting.json
中配置如下並重啟編輯器:
{ "editor.codeActionsOnSave": { "source.fixAll.eslint": true } }
之後再編寫 js
等文件保存時都會自動格式化,保證 Eslint
再也不會報錯
Prettier
一種規范化的寫法規則,包含各種類型文件,其中部分Javascript
等規則,會和 Eslint
不一樣,使用時隻要在VSCode
中安裝Prettier
插件即可
安裝後在 setting.json
中配置如下並重啟編輯器:
{ "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", }
表示所有類型的文件的格式化都使用 Prettier
沖突
如果兩者都啟用,則因為規則沖突,在JS
等文件中,會出現保存時,先運行瞭ESLint
,然後再運行瞭 Prettier
,導致 @eslint
檢測依然報錯
解決
既然使用 eslint
規范,我的理解上當然是不能去修改eslint
,因為這是共用規范,修改瞭就沒有再使用的必要瞭,所以我是不推薦修改eslint
的方式。
我的做法也很簡單,在eslint
作用的文件類型中,繼續使用eslint
進行格式化,在其他類型文件中,使用prettier
進行格式化
eslint
繼續使用 codeActionsOnSave
進行設置,把 eslint
作用范圍的文件類型的formatOnSave
關閉
{ "editor.tabSize": 2, // 開啟eslint "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, // 開啟自動格式化 "editor.formatOnSave": true, // 設置所有文件默認格式化工具為prettier "editor.defaultFormatter": "esbenp.prettier-vscode", // eslint范圍內的文件類型,關閉保存時格式化 "[javascript]": { "editor.formatOnSave": false }, "[typescript]": { "editor.formatOnSave": false }, "[vue]": { "editor.formatOnSave": false }, "[javascriptreact]": { "editor.formatOnSave": false } }
到此這篇關於VSCode如何保證 Eslint 和 Prettier 不沖突的文章就介紹到這瞭,更多相關VSCode內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vscode配置備份的操作代碼
- Vue3後臺管理系統之創建和配置項目
- 關於eslint+prettier+husky的配置及說明
- 詳解vue保存自動格式化換行
- vue基礎ESLint Prettier配置教程詳解