Delete ?eslint(prettier/prettier)錯誤
今天在用HBuilder開發uniapp專案時,想換成vscode進行開發,但是用vscode打開之前的專案,eslint報錯一片紅
解決方案:
方案一:一個一個檔案的選擇,具體操作如下,手動把CRLF換成LF,缺點:檔案太多,換不過來,太雞肋

方案二:yarn run lint
比上面省事,eslint錯誤消失,但暫存區多了n個檔案改動記錄,對比W
orking tree也沒發現任何不同,
參考資料:“error Delete ? prettier/prettier” in .vue files’’
缺點:需要commit所有檔案,多余

三、配置.prettierrc檔案
在專案根目錄下的.prettierrc檔案中寫入即可,其實就是不讓prettier檢測檔案每行結束的格式.
"endOfLine": "auto"
缺點:不能兼容跨平臺開發,從前端工程化上講沒有做到盡善盡美,
我直接加了這行代碼解決問題的
四、最佳方案
問題根源:
罪魁禍首是git的一個配置屬性:core.autocrlf
由于歷史原因,windows下和linux下的文本檔案的換行符不一致,
Windows在換行的時候,同時使用了回車符CR(carriage-return character)和換行符LF(linefeed character)
而Mac和Linux系統,僅僅使用了換行符LF
老版本的Mac系統使用的是回車符CR
因此,文本檔案在不同系統下創建和使用時就會出現不兼容的問題,
我的專案倉庫中默認是Linux環境下提交的代碼,檔案默認是以LF結尾的(工程化需要,統一標準),
當我用windows電腦git clone代碼的時候,若我的autocrlf(在windows下安裝git,該選項默認為true)為true,那么檔案每行會被自動轉成以CRLF結尾,若對檔案不做任何修改,pre-commit執行eslint的時候就會提示你洗掉CR,
現在可以理解ctrl+s和yarn run lint 方案為何可以修復eslint錯誤了吧,因為Git自動將CRLF轉換成了LF,
最佳實踐:
現在VScode,Notepad++編輯器都能夠自動識別檔案的換行符是LF還是CRLF,
如果你用的是windows,檔案編碼是UTF-8且包含中文,最好全域將autocrlf設定為false,
git config --global core.autocrlf false
注意:git全域配置之后,你需要重新拉取代碼,
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/543124.html
標籤:其他
上一篇:Node.js 應用全鏈路追蹤技術——全鏈路資訊存盤
下一篇:聊一聊js中元素定位的方法
