预期的换行符为'LF',但发现'CRLF'的线条样式

问题描述 投票:119回答:7

当在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();
javascript gulp eslint line-endings
7个回答
165
投票

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

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

由于您正在使用Windows,因此您可能希望使用此规则:

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

请参阅documentationlinebreak-style

当开发时很多人都有不同的编辑器,VCS应用程序和操作系统,可能会出现不同的行结尾都是由上述任何一个编写的(当使用Windows和Mac版本的SourceTree时可能会发生这种情况)。

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

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

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


104
投票

我发现它很有用(我想忽略换行符而不是更改任何文件)在.eslintrc中使用linebreak-style忽略它们,如下所示:https://stackoverflow.com/a/43008668/1129108

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

52
投票

如果您使用的是vscode而且您使用的是Windows,我建议您单击窗口右下角的选项并将其从CRLF设置为LF。因为我们不应该为了在Windows上删除错误而关闭配置

如果没有看到LF / CLRF,请右键单击状态栏并选择编辑器行尾。

menu


7
投票

刚刚在.gitconfig文件autocrlf中制作了false param并重新编写代码。有效!

[core] autocrlf = false


5
投票

发生在我身上,因为我跑了qazxsw poi,我忘了回复。

之后,当我签出/拉出新代码时,所有OF(Unix中的断行)都被CRLF(Windows中的Break line)取代。

我运行了linter,所有错误消息都是git config core.autocrlf true

为了解决这个问题,我通过运行Expected linebreaks to be 'LF' but found 'CRLF'检查了autocrlf值,我得到了:

git config --list | grep autocrlf

我编辑了全球GIT配置core.autocrlf=true core.autocrlf=false 并用~/.gitconfig取代了autocrlf = true

之后,我进入我的项目并执行以下操作(假设autocrlf = false文件夹中的代码):

src/

4
投票

如果您使用的是vscode,我建议您单击窗口右下角的选项并将其从CRLF设置为LF。这修复了我的错误


0
投票

如果您使用的是WebStorm而且您使用的是Windows,我建议您单击设置/编辑器/代码样式/常规选项卡,然后从下拉菜单中选择“windows(\ r \ n)”。这些步骤也适用于Rider。

CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2); rm -rf src/* git checkout $CURRENT_BRANCH src/

© www.soinside.com 2019 - 2024. All rights reserved.