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

2020/10/25 12:21 · javascript ·  · 0评论

在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();

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

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

由于您使用的是Windows,因此您可能想改用以下规则:

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

请参阅文件linebreak-style

当许多人使用不同的编辑器,VCS应用程序和操作系统进行开发时,可能会出现由提到的任何一种编写不同的行尾的情况(尤其是在同时使用Windows和Mac版本的SourceTree时可能会发生这种情况)。

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

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

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

我发现按以下答案使用换行符样式在.eslintrc中忽略它们是有用的(我想忽略换行而不更改任何文件):https ://stackoverflow.com/a/43008668/1129108

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

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

如果看不到LF / CLRF,请右键单击状态栏,然后选择“行尾编辑器”。

菜单

autocrlf在.gitconfig文件中设置参数并重新编写false了代码。有效!

[core]
autocrlf = false

如果要在crlf(Windows Eol)中使用它,请转到“文件”->“首选项”->“设置”。在“用户”选项卡中键入“行尾”,并确保“文件:Eol”设置为\ r \ n,如果使用的是Prettier扩展名,请确保将“ Prettier:行尾”设置为crlf在此处输入图片说明最后,在您的eslintrc文件上,添加以下规则:'linebreak-style': ['error', 'windows'] 在此处输入图片说明

和我一起发生是因为我跑步了git config core.autocrlf true,我忘记了回来。

之后,当我签出/拉出新代码时,所有LF(Unix中的换行)都被CRLF(Windows中的换行)代替。

我跑了linter,所有错误消息都是 Expected linebreaks to be 'LF' but found 'CRLF'

要解决此问题,我autocrlf通过运行检查了 值,git config --list | grep autocrlf并得到:

core.autocrlf=true
core.autocrlf=false

我编辑了全局GIT配置,~/.gitconfig并替换autocrlf = trueautocrlf = false

之后,我去了我的项目并执行以下操作(假设src/文件夹中的代码):

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

如果您使用的是vscode,建议您单击窗口右下角的选项,然后将其从CRLF设置为LF。

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

在此处输入图片说明

当我在eslint中使用VSCode时,发生了相同的情况。如果您使用VSCode,

1-单击名称可以为LF或CRLF的区域,位于VScode的右下角。

2-从下拉菜单中选择LF。

那对我有用。

在此处输入图片说明

本文地址:http://javascript.askforanswer.com/yuqihuanxingfuwei-lfdanfaxianwei-crlfhuanxingfuyangshi.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!