预期换行符为“LF”,但发现“CRLF”换行符样式

2022-08-30 00:20:23

在 gulp 项目中使用 eslint 时,我遇到了这样的错误问题
,我正在使用 Windows 环境进行 gulp 运行,下面给出了整个错误日志Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style

 Kiran (master *) Lesson 4 $ gulp
 Using gulpfile c:\Users\Sai\Desktop\web-build-tools\4\
 gulpfile.js
 Starting 'styles'...
 Finished 'styles' after 17 ms
 Starting 'lint'...
 'lint' errored after 1.14 s
 ESLintError in plugin 'gulp-eslint'
 sage: Expected linebreaks to be 'LF' but found 'CRLF'.
 ails: fileName: c:\Users\Sai\Desktop\web-build-tools\4\js\extra.js



$>Users\Sai\Desktop\web-build-tools\4\js\extra.js
error  Expected linebreaks to be 'LF' but found 'CRLF'  linebreak-style

我还包含额外的.js文件作为指示可能错误的错误。

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

答案 1

检查您是否在 .eslintrc 或源代码中按如下方式配置了规则:linebreak-style

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

由于您正在使用 Windows,因此可能需要改用以下规则:

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

请参阅以下文档linebreak-style

当与很多人一起开发时,他们都有不同的编辑器,VCS应用程序和操作系统,可能会发生不同的行尾由上述任何一个编写(特别是在同时使用Windows和Mac版本的SourceTree时可能发生)。

Windows操作系统中使用的换行符(新行)通常是回车符(CR),后跟换行符(LF),使其成为回车换行符(CRLF),而Linux和Unix使用简单的换行符(LF)。相应的控制序列是(对于LF)和用于(CRLF)。"\n""\r\n"

这是一个可自动修复的规则。命令行上的选项会自动修复此规则报告的问题。--fix

但是,如果您希望在代码中保留行尾(就像您在Windows上工作时),请不要使用该选项。CRLFfix


答案 2

我发现在.eslintrc中使用换行符样式忽略它们很有用(我想忽略换行符并且不更改任何文件),如以下答案所示:https://stackoverflow.com/a/43008668/1129108

module.exports = {
  extends: 'google',
  quotes: [2, 'single'],
  globals: {
    SwaggerEditor: false
  },
  env: {
    browser: true
  },
  rules:{
    "linebreak-style": 0
  }
};