Подтвердить что ты не робот

Ожидаемые разрывы строк будут "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();
4b9b3361

Ответ 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. enter image description here Наконец, в свой файл eslintrc добавьте это правило: 'linebreak-style': ['error', 'windows'] enter image description here