在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();
答案 0 :(得分:154)
检查您的.eslintrc或源代码中是否配置了linebreak-style
规则如下:
/*eslint linebreak-style: ["error", "unix"]*/
由于您正在使用Windows,因此您可能希望使用此规则:
/*eslint linebreak-style: ["error", "windows"]*/
请参阅linebreak-style
的{{3}}:
开发时很多人都有不同的编辑器,VCS 应用程序和操作系统可能会出现不同的行 结尾是由上述任何一个写的(可能特别是 在使用SourceTree的Windows和Mac版本时发生 在一起)。
Windows操作系统中使用的换行符(新行)是 通常回车(CR)后跟换行(LF)使其成为a 回车换行(CRLF),而Linux和Unix使用简单 换行(LF)。相应的控制序列为
"\n"
(对于LF) 和"\r\n"
for(CRLF)。
这是一个可自动修复的规则。命令行上的--fix
选项会自动修复此规则报告的问题。
但是如果您希望在代码中保留CRLF
行结尾(因为您正在使用Windows),请不要使用fix
选项。
答案 1 :(得分:96)
根据以下答案,我发现它很有用(我想忽略换行符而不更改任何文件)在.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
}
};
答案 2 :(得分:41)
如果您使用的是vscode,并且您使用的是 Windows ,我建议您单击窗口右下角的选项,并将其从CRLF设置为LF 。因为我们不应该只是为了消除 Windows
上的错误而关闭配置答案 3 :(得分:15)
这是管理此错误的非常好的方法。您可以将以下行放在 .eslintrc.js 文件中。
根据操作系统,它将采用适当的行尾。
rules: {
'linebreak-style': ['error', process.platform === 'win32' ? 'windows' : 'unix'],
}
答案 4 :(得分:4)
只需在.gitconfig文件autocrlf
中设置false
参数,然后重新编写代码。奏效了!
[core]
autocrlf = false
答案 5 :(得分:3)
因为我跑了git config core.autocrlf true
而忘记了回来,所以和我一起发生了。
此后,当我签出/拉出新代码时,所有LF(Unix中的换行)被CRLF(Windows中的换行)代替。
我跑了短毛绒,并且所有错误消息都是Expected linebreaks to be 'LF' but found 'CRLF'
为解决此问题,我通过运行autocrlf
检查了git config --list | grep autocrlf
的值,并得到了:
core.autocrlf=true
core.autocrlf=false
我编辑了全局GIT配置~/.gitconfig
,并用autocrlf = true
替换了autocrlf = false
。
此后,我去了我的项目并执行以下操作(假定src/
文件夹中的代码):
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/
答案 6 :(得分:3)
答案 7 :(得分:3)
答案 8 :(得分:1)
如果要在 crlf 中使用它(Windows Eol),请转到“文件”->“首选项”->“设置”。在“用户”标签中输入“行尾”,并确保将文件:Eol 设置为 \ r \ n ,如果您使用的是Prettier扩展名,请确保< strong>更漂亮:行尾设置为 crlf 。 最后,在您的eslintrc文件上,添加以下规则:'linebreak-style': ['error', 'windows']
答案 9 :(得分:0)
如果您使用的是vscode,建议您单击窗口右下角的选项,然后将其从CRLF设置为LF。这可以修复我的错误
答案 10 :(得分:0)
如果您使用的是 WebStorm ,并且您使用的是 Windows ,我建议您单击设置/编辑器/代码样式/常规标签,然后选择“ Windows(\ r \ n)从下拉菜单中进行。这些步骤也适用于Rider。
答案 11 :(得分:0)
尝试使用 linter 的 --fix 标志来解决问题。
<块引用>eslint filePath --fix
答案 12 :(得分:0)
git config core.autocrlf false
git rm --cached -r .
git reset --hard