如何解決vscode中ESLint和prettier沖突問題
注意:這個沖突問題一般是指在代碼編輯器中出現(xiàn)的問題,這里使用的是vscode。
在前端開發(fā)中,很多人使用 prettier 作為代碼格式化工具,用 ESLint 控制代碼風格,以及檢查錯誤。
但是在同時使用 ESLint 和 prettier 的時候,由于代碼規(guī)則不一樣就會發(fā)生沖突,發(fā)生沖突的原因是:在保存文件時,**ESLint 先修復了代碼符合 ESLint 的代碼風格,之后 prettier 又格式化了代碼,導致代碼不符合 ESLint 規(guī)則了。**所以代碼就會出現(xiàn) ESLint 的警告或報錯提示。
起初想的是把 prettier 規(guī)則配置的和 ESLint 一致,但是由于規(guī)則不一樣,不可能完全兼容。
之后有一個折中的方法,在 vscode 中,如果把保存文件時不格式化文件開啟,就不會自定調(diào)用 prettier 規(guī)則格式化代碼了,這樣就能符合 ESLint 規(guī)范了。
但是還有一個問題是 ESLint 修復主要針對的是 js
和 ts
的代碼,對于其他的代碼如 html、css 等文件還是得用 prittier,所以這種方法也有局限性。
解決方案1
在 vscode 中安裝插件 prettier-eslint
插件,這個插件的工作原理是先使用 prettier 格式化,然后再使用 ESLint 檢查和修復,這樣就能符合 ESLint 代碼風格了。
插件介紹鏈接:https://marketplace.visualstudio.com/items?itemName=rvest.vs-code-prettier-eslint
插件安裝完成后,將此插件設(shè)置為工作區(qū)或用戶中文件類型的默認格式化程序,在 vscode 配置文件中添加以下代碼:
{ // 保存時使用 ESLint 修復可修復錯誤 "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, // 定義一個默認格式化程序, 該格式化程序優(yōu)先于所有其他格式化程序設(shè)置。必須是提供格式化程序的擴展的標識符。 "editor.defaultFormatter": "rvest.vs-code-prettier-eslint", // "editor.formatOnPaste": false, // required // "editor.formatOnType": false, // required // "editor.formatOnSave": true, // optional // "editor.formatOnSaveMode": "file", // required to format on save // "files.autoSave": "onFocusChange" // optional but recommended }
配置完成后,重啟 vscode 后生效。
解決方案2
在 vscode 中安裝插件 PEF: Prettier & Eslint Formatter
插件,這個插件的工作原理是先使用 prettier 格式化,然后再使用 ESLint 檢查和修復,這樣就能符合 ESLint 代碼風格了。
插件介紹鏈接:https://marketplace.visualstudio.com/items?itemName=jonwolfe.prettier-eslint-formatter
插件安裝完成后,將此插件設(shè)置為工作區(qū)或用戶中文件類型的默認格式化程序,在 vscode 配置文件中添加以下代碼:
{ "[javascript]": { "editor.defaultFormatter": "jonwolfe.prettier-eslint-formatter", "editor.codeActionsOnSave": { "source.fixAll.eslint": false } }, "[javascriptreact]": { "editor.defaultFormatter": "jonwolfe.prettier-eslint-formatter", "editor.codeActionsOnSave": { "source.fixAll.eslint": false } }, "[typescript]": { "editor.defaultFormatter": "jonwolfe.prettier-eslint-formatter", "editor.codeActionsOnSave": { "source.fixAll.eslint": false } }, "[typescriptreact]": { "editor.defaultFormatter": "jonwolfe.prettier-eslint-formatter", "editor.codeActionsOnSave": { "source.fixAll.eslint": false } } }
總結(jié)
到此這篇關(guān)于如何解決vscode中ESLint和prettier沖突問題的文章就介紹到這了,更多相關(guān)vscode ESLint和prettier沖突解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VSCode連接遠程服務(wù)器調(diào)試代碼超詳細流程(圖文)
這篇文章主要給大家介紹了關(guān)于VSCode連接遠程服務(wù)器調(diào)試代碼的超詳細流程,遠程調(diào)試是為了解決在本機開發(fā)環(huán)境與線上不一致導致調(diào)試難、搭建繁瑣,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-10-10Web開發(fā)/設(shè)計人員應(yīng)當知道的15個網(wǎng)站
建個好網(wǎng)站絕非易事,工欲善其事必先利其器。本文編譯了15個極其有用的網(wǎng)站,任何一位網(wǎng)站開發(fā)者或設(shè)計人員都應(yīng)該收藏起來2011-05-05讓開發(fā)自動化 用 Eclipse 插件提高代碼質(zhì)量
如果能在構(gòu)建代碼前發(fā)現(xiàn)代碼中潛在的問題會怎么樣呢?很有趣的是,Eclipse 插件中就有這樣的工具,比如 JDepend 和 CheckStyle,它們能幫您在軟件問題暴露前發(fā)現(xiàn)這些問題。2009-05-05Skywalking-agent調(diào)試說明以trace-ignore為例
這篇文章主要為大家介紹了以trace-ignore為例的Skywalking-agent調(diào)試說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06