在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 = true
为autocrlf = false
。
之后,我去了我的项目并执行以下操作(假设src/
文件夹中的代码):
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/
文章标签:eslint , gulp , javascript , line-endings
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!