在vscode中做vue项目时,eslint出现了如下错误提示:
Expected linebreaks to be 'LF' but found 'CRLF'.eslint(linebreak-style)
crlf 和 lf 是文本换行的不同方式:
这是由于不同的操作系统的换行字符表示不同。
- CR:对应ASCII中转义字符\r,表示回车
- LF:对应ASCII中转义字符\n,表示换行,用于Unix/Linux/Mac OS X操作系统
- CRLF:\r\n,表示回车并换行,用于Windows操作系统
1. 我用的是windows操作系统,对于出现的错误提示,一种方法可以通过修改eslint的配置文件来解决。如在.eslintrc.js文件的rules中添加如下代码:
"linebreak-style": [0,"error", "windows"],
这里要注意的是如果根目录中没有.eslintrc.js文件,也可在package.json文件中添加
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"@vue/airbnb"
],
// 此处为添加的内容
"rules": {
"linebreak-style": [0,"error", "windows"]
},
"parserOptions": {
"parser": "babel-eslint"
}
},
2. 换行符的不同经常会导致不同会导致使用不同系统的同事之间的代码冲突问题。
在你使用git拉取代码的时候,git会自动将代码当中与你当前系统不同的换行方式转化成你当前系统的换行方式,从而造成这种冲突。所以最终还是建议使用如下方法。
window系统解决办法:
方法一: 修改git全局配置,禁止git自动将lf转换成crlf, 命令:
git config --global core.autocrlf false
方法二: 修改编辑器的用户配置,例如vscode
"files.eol": "\n", // 文件换行使用lf方式