linebreak-style
強制一致的換行符號樣式
此規則報告的某些問題可以透過 --fix
命令列 選項自動修正
當與許多使用不同編輯器、VCS 應用程式和作業系統的人員一起開發時,可能會發生由上述任一項寫入不同行尾符的情況(當一起使用 Windows 和 Mac 版本的 SourceTree 時尤其可能發生)。
Windows 作業系統中使用的換行符號(新行)通常是歸位字元 (CR) 後跟換行字元 (LF),使其成為歸位換行字元 (CRLF),而 Linux 和 Unix 則使用簡單的換行字元 (LF)。對應的控制序列為 "\n"
(用於 LF)和 "\r\n"
(用於 CRLF)。
許多版本控制系統(如 git 和 subversion)可以自動確保正確的行尾符。但是,為了涵蓋所有意外情況,您可以啟用此規則。
規則詳情
此規則強制在您的程式碼庫中,無論使用何種作業系統、VCS 或編輯器,都保持一致的行尾符。
選項
此規則有一個字串選項
"unix"
(預設)強制使用 Unix 行尾符:\n
代表 LF。"windows"
強制使用 Windows 行尾符:\r\n
代表 CRLF。
unix
此規則使用預設 "unix"
選項的錯誤程式碼範例
/*eslint linebreak-style: ["error", "unix"]*/
var a = 'a'; // \r\n
此規則使用預設 "unix"
選項的正確程式碼範例
/*eslint linebreak-style: ["error", "unix"]*/
var a = 'a', // \n
b = 'b'; // \n
// \n
function foo(params) { // \n
// do stuff \n
}// \n
windows
此規則使用 "windows"
選項的錯誤程式碼範例
/*eslint linebreak-style: ["error", "windows"]*/var a = 'a'; // \n
此規則使用 "windows"
選項的正確程式碼範例
/*eslint linebreak-style: ["error", "windows"]*/ // \r\n
// \r\n
var a = 'a', // \r\n
b = 'b'; // \r\n
// \r\n
function foo(params) { // \r\n
// do stuff \r\n
} // \r\n
將此規則與版本控制系統一起使用
版本控制系統有時對於換行符號有特殊的行為。為了讓開發人員可以從不同的平台輕鬆地貢獻您的程式碼庫,您可能需要設定您的 VCS 來適當地處理換行符號。
例如,在 Windows 系統上 git 的預設行為是在檢出檔案時將 LF 換行符號轉換為 CRLF,但在提交變更時將換行符號儲存為 LF。如果設定為 "unix"
設定,這將導致 linebreak-style
規則報告錯誤,因為 ESLint 看到的檔案將具有 CRLF 換行符號。如果您使用 git,您可能需要在您的 .gitattributes
檔案 中新增一行,以防止 git 轉換 .js
檔案中的換行符號
*.js text eol=lf
何時不該使用
如果您不擔心程式碼中存在不同的行尾符,則可以安全地關閉此規則。
相容性
- JSCS: validateLineBreaks
版本
此規則在 ESLint v0.21.0 中引入。