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

新手上路,请多包涵

在 gulp 项目中使用 eslint 时,我遇到了这样的错误问题

Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style ,我正在使用 Windows 环境来运行 gulp,整个错误日志如下所示

 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

我还包括 extra.js 文件作为指示可能错误的错误。

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

原文由 SaiKiran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

检查您的 .eslintrc 或源代码中是否有如下配置的换 linebreak-style 规则:

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

由于您在 Windows 上工作,因此您可能希望改用此规则:

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

参考 linebreak-style文档

当与很多人都有不同的编辑器一起开发时,VCS

应用程序和操作系统可能会出现不同的线路

结尾是由上面提到的任何一个写的(可能尤其是

使用 SourceTree 的 windows 和 mac 版本时发生

一起)。

Windows 操作系统中使用的换行符(新行)是

通常是回车符 (CR),后跟换行符 (LF),使其成为

回车换行(CRLF),而 Linux 和 Unix 使用简单的

换行(LF)。对应的控制序列是 "\n" (对于LF)

"\r\n" 代表(CRLF)。

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

但是,如果您希望在代码中保留 CRLF 行尾(因为您在 Windows 上工作),请不要使用 fix 选项。

原文由 Dheeraj Vepakomma 发布,翻译遵循 CC BY-SA 3.0 许可协议

我发现根据这个答案使用换行样式在 .eslintrc 中忽略它们很有用(我想忽略换行而不更改任何文件): https ://stackoverflow.com/a/43008668/1129108

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

原文由 The Coder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题