Почему я все время получаю Delete 'cr' [prettier / prettier]?

Я использую vscode с Prettier 1.7.2 и Eslint 1.7.0. После каждой новой строки я получаю:

[eslint] Delete 'cr' [prettier/prettier]

Это .eslintrc.json:

{
  "extends": ["airbnb", "plugin:prettier/recommended"],
  "env": {
    "jest": true,
    "browser": true
  },
  "rules": {
    "import/no-extraneous-dependencies": "off",
    "import/prefer-default-export": "off",
    "no-confusing-arrow": "off",
    "linebreak-style": "off",
    "arrow-parens": ["error", "as-needed"],
    "comma-dangle": [
      "error",
      {
        "arrays": "always-multiline",
        "objects": "always-multiline",
        "imports": "always-multiline",
        "exports": "always-multiline",
        "functions": "ignore"
      }
    ],
    "no-plusplus": "off"
  },
  "parser": "babel-eslint",
  "plugins": ["react"],
  "globals": {
    "browser": true,
    "$": true,
    "before": true,
    "document": true
  }
}

Файл .prettierrc:

{
  "printWidth": 80,
  "tabWidth": 2,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
}

Как мне избавиться от этой ошибки?

Взгляните на свой файл .eslintrc.js. удаление 'plugin:prettier/recommended' из массива extends должно решить проблему.

Sanu Soman 08.08.2021 07:30

Зачем вы расширяете "plugin:prettier/recommended"?

ACV 07.12.2021 12:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
378
2
253 183
28

Ответы 28

Попробуйте установить "endOfLine":"auto" в вашем файле .prettierrc (внутри объекта)

Или установить

'prettier/prettier': [
  'error',
  {
    'endOfLine': 'auto',
  }
]

внутри объекта правил файла eslintrc.

Если вы используете Windows-машину, endOfLine может быть "crlf" в зависимости от вашей конфигурации git.

У меня сработало изменение файла .eslintrc, но не файла .prettierrc. Не знаю, почему или в чем разница (я новичок во всех тегах OP).

Neo 31.01.2019 03:19

Я предполагаю, что вам может понадобиться расширение Prettier в VS Code. Prettierrc будет действителен только в этом сценарии.

Vah Run 29.05.2019 05:02

изменение последовательности конца строки с CRLF на LF сработало для меня на машине с Windows

Anup 18.06.2020 09:33

Для такого новичка, как я, это должно быть сделано именно так. Откройте .eslintrc.json, находящийся в вашем корневом каталоге (frontend). После изменений он будет выглядеть следующим образом: { "extends": ["react-app", "prettier"], "plugins": ["prettier"], "rules": { "prettier/prettier": ["error", { "endOfLine": "auto" }] } }

SimpleGuy 30.08.2020 03:50

Добавление в файл .prettierrc сработало для меня, и да, у меня тоже есть расширение.

Emmanuel Neni 29.09.2020 08:30

Добавление этого к моему .elintrc сработало. Я до сих пор не понимаю, почему были затронуты только оригинальные (я почти уверен) файлы с create-react-app. Файлы, которые я добавил в проект, казалось, обрабатывались правильно без этого мода. Странно, по крайней мере, для меня.

tim.rohrer 29.10.2020 05:26

Примечание: блок prettier/prettier входит в раздел rules файла .eslintrc.js.

mgPePe 25.01.2021 22:45

обновление .prettierrc.js с помощью endOfLine: 'auto' у меня работало на windows + vs code. Обновление .eslintrc.js не помогло

mishal153 17.02.2021 00:26

К вашему сведению: требуется перезагрузка, чтобы изменения вступили в силу в VSCode.

Sangimed 18.08.2021 18:40

Как я могу добавить это правило в мои локальные настройки vscode, чтобы мне не приходилось обновлять уже зафиксированный eslintrc?

heytulsiprasad 15.10.2021 07:36

изменение .prettierrc.js действительно сработало. но чтобы увидеть эффект, попытался удалить новую строку внутри кода и сохранить ее для автоматического форматирования, чтобы позаботиться о

Mohamed Iqzas 03.11.2021 10:37

Мне пришлось включить более красивое расширение vscode в Windows и добавить в .eslintrc.js ?

djangodev 12.11.2021 20:50

Примечание. Хотя можно передать параметры Prettier через файл конфигурации ESLint, это не рекомендуется, потому что расширения редактора, такие как prettier-atom и prettier-vscode, будут читать .prettierrc, но не будут читать настройки из ESLint, что может привести к к противоречивому опыту. github.com/prettier/eslint-plugin-prettier#options

ACV 07.12.2021 11:42

измените этот параметр на VSCode.

Это решит проблему, но только до тех пор, пока вы не откроете другой исходный файл с помощью CRLF. Вышеуказанный ответ более эффективен.

BobHy 07.06.2019 19:55

Это сработало для меня. Я пробовал другие подходы, включая редактирование файлов конфигурации, ни один из них не работал.

Amogh Sarpotdar 09.11.2020 01:08

Это спасло мне день. Я использую VS Code с окном. Это может быть связано с той же фиксацией из другой системы

yogen darji 22.02.2021 11:45

Ракетостроение!

Jeaf Gilbert 26.03.2021 17:32

Лучшее решение! Следуйте этому подходу и избегайте редактирования файлов конфигурации, в этом нет необходимости.

gonpeche 06.04.2021 20:51

Помимо изменения CRLF на LF в VSCode, git может выполнять автоматическое преобразование под капотом. Если вы выбрали checkout Windows-style при установке, он преобразует исходный код, который вы клонируете, в CRLF. Так что переустановка git и выбор checkout as-is, commit Unix-style исправят это.

Huy 08.04.2021 12:22

Это лучшее решение, так как моя команда использует Mac, я использую Windows, которым нужно адаптироваться к конфигурации команды, поэтому мне не нужно возиться с файлом конфигурации

rickvian 24.08.2021 05:14

работал отлично.

Lead Developer 23.09.2021 21:33

Я использую git + vscode + windows + vue, а после прочтения документа eslint: https://eslint.org/docs/rules/linebreak-style

Наконец исправьте это:

добавить *.js text eol=lf в .gitattributes

затем запустите vue-cli-service lint --fix

На моем компьютере с Windows я решил это, добавив приведенный ниже фрагмент кода в объект rules файла .eslintrc.js, находящийся в каталоге моего текущего проекта.

    "prettier/prettier": [
      "error",
      {
        "endOfLine": "auto"
      },
    ],

Это сработало и на моем Mac

@brijs что ты имеешь в виду?

indolentdeveloper 17.02.2021 22:28

Я знаю, что это старый, но я только что столкнулся с проблемой в моей команде (некоторые Mac, некоторые Linux, некоторые окна, все vscode).

Решением было установить строку, заканчивающуюся настройками vscode:

.vscode/settings.json

{
    "files.eol": "\n",
}

https://qvault.io/2020/06/18/how-to-get-consistent-line-breaks-in-vs-code-lf-vs-crlf/

Я перешел на "красивее": "^ 2.2.0", и ошибка исчезла

в файле .eslintrc.json в побочных ролях добавьте этот код, он решит эту проблему

      "rules": {
    "prettier/prettier": ["error",{
      "endOfLine": "auto"}
    ]

  }

Попробуй это. Меня устраивает:

yarn run lint --fix

или

npm run lint -- --fix

это может помочь npm run lint -- --fix

Raheel Khan 31.01.2021 16:45

@ Cláudio попробуйте этот eslint --ext js, jsx, ts, tsx src --quiet --fix> lint.log

Hakan 01.02.2021 19:09

Исправлено - Мой .eslintrc.js выглядит так:

module.exports = {
  root: true,
  extends: '@react-native-community',
  rules: {'prettier/prettier': ['error', {endOfLine: 'auto'}]},
};

Огромное спасибо! У меня хорошо работало, даже когда я менял LF и CRLF.

Hyfy 27.03.2021 15:03

В корне откройте файл .editorconfig и измените:

end_of_line = lf

к

end_of_line = auto

Это должно исправить это для новых файлов.

Добавьте это в свой файл .prettierrc и откройте VSCODE

"endOfLine": "auto"

Все ответы выше верны, но когда я использую Windows и отключить расширение Prettier ESLintrvest.vs-code-prettier-eslint, проблема будет исправлена.

Измените тип файла с tsx -> ts, jsx -> js

Вы можете получить эту ошибку, если работаете с файлом .tsx или .jsx и просто экспортируете стили и т. д., А не jsx. В этом случае ошибка решается изменением типа файла на .ts или .js.

Для меня сработало:

  1. Обновите prettier до версии 2.2.1 (последняя версия на данный момент), как предложил Роберто Л.Л. Для этого выполните

npm update prettier

  1. Выполните исправление lint, как предложил Хакан (это изменит все файлы в проекте, чтобы преобразовать окончание строки в LF).

npm run lint -- --fix

Изменять файлы .eslintrc и .prettierrc не пришлось!

prettier был обновлен на моей машине, но запуск npm run lint - --fix устранил проблему.

Jashan PJ 12.05.2021 10:59

У меня это работает с nestjs и windows, спасибо!

JazMagno 18.09.2021 02:38

Не стоит игнорировать правило линтера. Просто исправьте это автоматически

npm install -g prettier
prettier -w .\webpack.config.js # or other file

Исправлено: в моем eslintrc.js некоторые правила выглядят так:

rules: {
    'prettier/prettier': ['error', { "endOfLine": "auto"}, { usePrettierrc: true }],  // Use our .prettierrc file as source
    'react/react-in-jsx-scope': 'off',
    'react/prop-types': 'off',
    'simple-import-sort/imports': 'error',
    "simple-import-sort/exports": "error"
}

В моем случае я использую ОС Windows и код git поддерживает Mac и конвертирую в CRLF выполните команду ниже в командной строке, чтобы остановить преобразование файлов в CRLF:

git config --global core.autocrlf input

Снова проверьте код, снова откройте Visual Studio Code и снова запустите свои скрипты. У меня это сработало.

Я перепробовал все здесь, и мне нужно было управлять расширением конфигурации красивее с помощью расширений значков> красивее> маленький движок> настройки расширений> Prettier: End Of Line> установить на авто.

После добавления этих двух строк в мой settings.json

"eslint.run": "onSave",
"editor.formatOnSave": true,

Я смог использовать конфигурацию ниже внутри правила .eslintrc.js.

"prettier/prettier": ["error", {
    "endOfLine":"auto"
}],

Решение

git config --global core.autocrlf false

После глобальной настройки вам нужно снова вытащить код.

Основная причина проблемы:

Виновник - git, свойство конфигурации core.autocrlf.

По историческим причинам разрывы строк в текстовом файле на windows и linux различаются.

  • Windows При переносе строки возврат каретки используется одновременно с CR(carriage-return character) и переносом строки LF(linefeed character)
  • Mac и Linux используют только символ новой строки LF
  • Старая версия Mac использует возврат каретки CR

Следовательно, возникнут проблемы несовместимости при создании и использовании текстовых файлов в разных системах.

Когда я клонирую код на Windows, autocrlf по умолчанию имеет значение истинный, а затем каждая строка файла автоматически конвертируется в CRLF. Если вы не вносите никаких изменений в файл, eslint удалит CR с помощью pre-commit, поскольку git автоматически конвертирует CRLF в LF.

Ссылка

https://developpaper.com/solution-to-delete-%E2%90%8Deslint-prettier-prettier-error/

проект, с которым я столкнулся с проблемой, был разработан на macos, чем установка его на Windows привела к вышеупомянутой ошибке. это решение, которое я нашел разумным, решило проблему. изменение кода не потребовалось, и проект выполняется без ошибок.

Peter Koller 14.09.2021 16:45

У меня это сработало ... Репозиторий command + repull.

Tabi 13.11.2021 19:05

Если приведенный выше код не работает, попробуйте эти два шага.

1. в файле .eslintrc.json внутри объекта правил добавьте этот код, он решит эту проблему

 "prettier/prettier": ["error",{
      "endOfLine": "auto"}
    ]

2 Изменить сервер разработчика - исправление

npm run dev

К

npm run dev --fix

ИЛИ

npm run lint -- --fix
yarn run lint -- --fix

ты имеешь ввиду внутри объекта правил? если это так, пожалуйста, исправьте это

Ernesto Alfonso 01.07.2021 09:16

Проверьте правую часть строки состояния VS Code внизу, где отображается такая информация, как строка и столбец, пробелы, кодировка текста (UTF-8 и т. д.). Вы должны увидеть отображение статуса Select End Of Line Sequence (LF или CRLF), которое вы можете щелкнуть, чтобы изменить. Убедитесь, что вы не изменили это вручную на что-то, что противоречит тому, что вы хотите, чтобы Prettier использовал.

У меня была такая же проблема в моем приложении nest js. Добавление приведенного ниже кода в .eslintrc.jsrules и последующий запуск yarn run lint --fix устранили проблему.

'prettier/prettier': [
  'error',
  {
    endOfLine: 'auto',
  },
],

а мои правила .eslintrc.js выглядят примерно так ..

 rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'prettier/prettier': [
  'error',
  {
    endOfLine: 'auto',
  },
],

},

Добавьте это правило ниже в файл .eslintrc и затем перезапустите свой проект.

rules: {
    'prettier/prettier': ['error', { "endOfLine": "auto"}, { usePrettierrc: true }],  
}

Решение

1. Отключите настройку автоконвертации git.

git --global config core.autocrlf false

2. Удалите старые данные из кеша.

git rm --cached -r .

3. Сбросить файлы git

git reset --hard

Ошибка появляется, когда я извлекаю код из git, и у меня это работает:

ШАГ 1:

git config --global core.autocrlf false

ШАГ 2:

  • удалить вашу текущую папку

ШАГ 3:

  • снова вытащить код из git
  • попробуйте запустить команду еще раз

Это работа для меня

шаг 1 React js root directory найти файл .eslintrc

Шаг 2 найти в .eslintrc

"prettier/prettier": [
  2,
  {
    "printWidth": 100,
    "singleQuote": true,
    "trailingComma": "none",
    "tabWidth": 2
  }
]

заменить

"prettier/prettier": [
  "error",
  {
    "endOfLine": "auto"
  }
]

сохранить файл, а затем запустить

npm start

отредактируйте файл .eslintrc.json и обновите значение "красивее / красивее", показанное ниже.

Я столкнулся с той же проблемой и исправил, используя следующие изменения.

"prettier/prettier": [
    "error", {
         "singleQuote": true,
         "parser": "flow" 
    }
],

В файл .eslintrc добавьте следующее:

  • extends: ['prettier'] и plugins: ['prettier']

  • rules: {'prettier/prettier': ['error', {endOfLine: 'auto'}]}

В .prettierrc удалите это:

  • endOfLine: 'auto'

Меня устраивает.

Другие вопросы по теме