Я использую 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,
}

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

Ответы (28)

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

Попробуйте это. Это работает для меня:

yarn run lint --fix

или

npm run lint -- --fix

In the root open the .editorconfig file and change:

end_of_line = lf

to

end_of_line = auto

This should fix it for new files.

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

.
"endOfLine": "auto"

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

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

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

What worked for me was:

  1. Update prettier to version 2.2.1 (latest version at the moment) as Roberto LL suggested. To do it execute

npm update prettier

  1. Execute lint fix as Hakan suggested (This will modify all files in the project to convert line ending to LF).

npm run lint -- --fix

It was not necessary to change .eslintrc and .prettierrc files!

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

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

В моем случае я использую windows OS, а git-код поддерживается в Mac и преобразуется в CRLF. Выполните следующую команду в cmd prompt, чтобы остановить преобразование файлов в CRLF: введите описание изображения здесь

git config --global core.autocrlf input

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

Solution

git config --global core.autocrlf false

After global configuration, you need to pull the code again.

Root cause of the problem:

The culprit is git, a configuration property of core.autocrlf

For historical reasons, the line breaks of the text file on windows and linux are different.

  • Windows At the time of line break, carriage return is used at the same time CR(carriage-return character) and line breaks LF(linefeed character)
  • Mac and Linux only use the newline character LF
  • Old version of Mac uses carriage return CR

Therefore, there will be incompatibility problems when text files are created and used in different systems.

When I clone code on Windows, autocrlf is true as default and then each line of the file is automatically converted to CRLF. If you do not make any changes to the file, eslint delete CR by pre-commit since git automatically convert CRLF to LF.

Reference

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

If the above code is not working for you try these two steps.

1. in the file .eslintrc.json inside rules object add this code it will solve this issue

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

2 Change dev server --fix

npm run dev

To

npm run dev --fix

OR

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

У меня была такая же проблема в моем приложении 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',
  },
],

},

Solution

1. Disable auto conversion git setting

git --global config core.autocrlf false

2. Remove old cache data

git rm --cached -r .

3. Reset git files

git reset --hard

Error appears when I pull code from git, and this work for me:

STEP 1:

git config --global core.autocrlf false

STEP 2:

  • delete your current folder

STEP 3:

  • pull code from git again
  • try running command again

Its work for me

step-1 React js root directory find .eslintrc file

Step-2 find in .eslintrc

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

replace with

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

save file and then run

npm start

In the .eslintrc file add the following:

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

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

In .prettierrc remove this:

  • endOfLine: 'auto'

It works for me.

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

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

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

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

  }

Исправлено - Мой .eslintrc.js выглядит следующим образом:

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

Исправлено: В моем 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"
}

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

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

введите описание изображения здесь

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

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

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

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

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

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

Я попробовал все, что здесь написано, и мне нужно было управлять расширением prettier config через icon extensions > prettier > small engine > extensions settings > Prettier: End Of Line > установлен на auto.

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

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

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

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

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

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

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

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

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

Я знаю, что эта статья старая, но я только что столкнулся с этой проблемой в своей команде (некоторые mac, некоторые linux, некоторые windows, все 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/

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

Окончательно исправить это можно следующим образом:

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

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

2022 WebDevInsider