当在gulp项目中使用eslint时,我遇到过这样的错误问题
预期换行符是“LF”,但发现“CRLF”换行风格,我使用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();
发生在我身上,因为我运行git配置核心。这是真的,我忘记了回头。
在那之后,当我签出/提取新代码时,所有LF (Unix中的换行符)都被CRLF (Windows中的换行符)所取代。
我运行linter,所有错误消息都是预期换行符为“LF”,但发现“CRLF”
为了解决这个问题,我通过运行git config——list | grep selflf检查了selflf的值,我得到:
core.autocrlf=true
core.autocrlf=false
我编辑了全局GIT配置~/。Gitconfig,并将selflf = true替换为selflf = false。
之后,我进入我的项目并执行以下操作(假设代码在src/文件夹中):
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/
在我的情况下(vue.js项目,使用vue-cli创建),lint问题预期换行符是“LF”,但发现“CRLF”换行风格与pretty相关。
从版本>= 2更漂亮的替换所有行结尾“lf”:https://prettier.io/docs/en/options.html#end-of-line
由于我使用Windows开发,我设置了这3个(git, eslint,更漂亮)配置,以避免行结束问题:
Git:我设置了Git配置全局核心。autocrlf真实
eslint:在.eslintrc.js文件中配置:
module.exports = {
rules: {
'linebreak-style': ['error', 'windows'],
},
};
最后在prettier.config.js中:
module.exports = {
endOfLine: "crlf",
};
.eslintrc.js和.prettierrc文件中的“endoline”:“auto”设置对我来说很有效。
文件.eslintrc.js应该有:
rules: {
/* ...the other code is omitted for the brevity */
'arrow-body-style': [1, 'as-needed'],
'import/extensions': 'off',
'prettier/prettier': [
'error',
{
semi: false,
singleQuote: true,
useTabs: true,
endOfLine: 'auto', /* this setting should be included */
},
],
文件.prettierrc应该有:
{
"semi": false,
"trailingComma": "all",
"singleQuote": true,
"useTabs": true,
"tabWidth": 2,
"endOfLine": "auto" /* this setting should be included */
}