# 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"]*/

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

# 何时不使用

如果您不担心代码中有不同的行尾,那么您可以安全地关闭此规则。

# 兼容性

  • JSCSvalidateLineBreaks
Last Updated: 5/13/2023, 8:55:38 PM