Expected linebreaks to be 'LF' but found 'CRLF'.


解決方法

在rules中加入

"linebreak-style": [0 ,"error", "windows"], 

如果你需要知道原理,請看下面的內容。

原理

CR LF CRLF

  • 當許多人都有不同的編輯器、VCS 應用程序和操作系統時,可能會發生不同的行結尾由上述任何一種寫入。
  • 不同系統中的換行符
    • Windows 操作系統中使用的換行符(換行符)通常是回車符(CR),后面是換行符(LF),使其成為回車換行符(CRLF),
    • LinuxUnix使用簡單換行符(LF)。相應的控制序列是"\n"(對於LF)和"\r\n"對於(CRLF)。
  • 許多版本控制系統(如 git 和 subversion)可以自動確保正確的結局。但為了涵蓋所有意外情況,您可以激活此規則(linebreak-style)。

linebreak-style

  • 此規則強制執行統一的行結尾,而不受操作系統,VCS 或整個代碼庫中使用的編輯器的影響。
    選項

  • "unix"(默認)強制使用Unix行結尾:\n對於LF。

  • "windows"強制使用Windows行結束符:\r\n用於CRLF。
    unix

錯誤示例

"unix"(默認)強制使用Unix行結尾:\n對於LF。
"windows"強制使用Windows行結束符:\r\n用於CRLF。

正確示例

/*eslint linebreak-style: ["error", "unix"]*/

var a = 'a', // \n
    b = 'b'; // \n
// \n
function foo(params) { // \n
    // do stuff \n
}// \n

windows

錯誤示例

/*eslint linebreak-style: ["error", "windows"]*/

var a = 'a'; // \n

正確示例

*eslint linebreak-style: ["error", "windows"]*/

var a = 'a', // \r\n
    b = 'b'; // \r\n
// \r\n
function foo(params) { // \r\n
    // do stuff \r\n
} // \r\n

在版本控制系統中使用此規則

例如,Windows 系統上 git 的默認行為是在檢出文件時將 LF 換行轉換為 CRLF,但在提交更改時將換行符存儲為 LF。linebreak-style如果配置了該"unix"設置,這將導致規則報告錯誤,因為 ESLint 看到的文件將具有 CRLF 換行符。如果你使用 git,你可以添加一行到你的.gitattributes文件,以防止 git 轉換.js文件中的換行符:

*.js text eol=lf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM