Ожидаемые разрывы строк будут "LF", но найдены "CRLF"
При использовании eslint в проекте gulp я столкнулся с проблемой с ошибкой, подобной этой |
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();
Ответы
Ответ 1
Проверьте, настроено ли правило linebreak-style
, как указано ниже, в вашем .eslintrc или в исходном коде:
/*eslint linebreak-style: ["error", "unix"]*/
Поскольку вы работаете с Windows, вы можете использовать это правило вместо:
/*eslint linebreak-style: ["error", "windows"]*/
Обратитесь к документации linebreak-style
:
При разработке с большим количеством людей, имеющих разные редакторы, VCS приложений и операционных систем, может случиться, что другая строка окончания написаны одним из упомянутых (особенно происходят при использовании окон и версий Mac SourceTree вместе).
Линейные строки (новые строки), используемые в операционной системе Windows, обычно возврат каретки (CR), за которым следует подача строки (LF), что делает ее (CRLF), тогда как Linux и Unix используют простой (LF). Соответствующие контрольные последовательности "\n"
(для LF) и "\r\n"
для (CRLF).
Это правило, которое автоматически фиксируется. Параметр --fix
в командной строке автоматически исправляет проблемы, описанные в этом правиле.
Но если вы хотите сохранить CRLF
концы строк в своем коде (поскольку вы работаете в Windows), не используйте параметр fix
.
Ответ 2
Я нашел его полезным (где я хотел проигнорировать линейные каналы и не изменять какие-либо файлы), чтобы игнорировать их в .eslintrc, используя стиль linebreak в соответствии с этим ответом: fooobar.com/questions/131045/...
module.exports = {
extends: 'google',
quotes: [2, 'single'],
globals: {
SwaggerEditor: false
},
env: {
browser: true
},
rules:{
"linebreak-style": 0
}
};
Ответ 3
Если вы используете vscode и используете Windows, я бы порекомендовал вам щелкнуть параметр в правом нижнем углу окна и установить для него значение LF из CRLF. Потому что мы не должны отключать конфигурацию только ради устранения ошибок в Windows
Если вы не видите LF/CLRF, щелкните правой кнопкой мыши строку состояния и выберите "Редактор конца строки".
![menu]()
Ответ 4
Просто сделали autocrlf
параметров в файле .gitconfig false
и клонировал код. Это сработало!
[core] autocrlf = false
Ответ 5
Произошло со мной, потому что я запустил git config core.autocrlf true
и забыл вернуться обратно.
После этого, когда я извлекаю/извлекаю новый код, все LF (разрыв строки в Unix) заменяется на CRLF (разрыв строки в Windows).
Я запустил linter, и все сообщения об ошибках Expected linebreaks to be 'LF' but found 'CRLF'
Чтобы решить эту проблему, я проверил значение autocrlf
, запустив git config --list | grep 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
Если вы используете vscode, я бы порекомендовал вам щелкнуть опцию в правом нижнем углу окна и установить для нее значение LF из CRLF. Это исправило мои ошибки.
Ответ 7
Если вы используете WebStorm и работаете в Windows, я бы порекомендовал вам щелкнуть вкладку "Настройки"/"Редактор"/"Стиль кода"/"Общие" и выбрать "Windows (\ r\n)" из выпадающего меню. Эти шаги также применимы к Rider.
![enter image description here]()
Ответ 8
Если вы хотите это в crlf (Windows Eol), перейдите в Файл → Настройки → Настройки. Введите "конец строки" на вкладке "Пользователь" и убедитесь, что для Files: Eol установлено значение \ r\n, а если вы используете расширение Prettier, убедитесь, что Красивее: Конец строки имеет значение crlf.
Наконец, в свой файл eslintrc добавьте это правило: 'linebreak-style': ['error', 'windows']
![enter image description here]()