解決方法
在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
