419

我将 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,
}

我怎样才能摆脱这个错误?

4

31 回答 31

666

尝试"endOfLine":"auto"在您的.prettierrc(或 .prettierrc.json)文件(对象内部)中设置

或设置

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

eslintrc文件的规则对象中。

如果您使用的是 Windows 机器 endOfLine 可以根据您的 git 配置“crlf”。

于 2018-12-13T19:57:09.667 回答
452

在 VSCode 上更改此设置。

在此处输入图像描述

于 2019-01-16T03:19:21.203 回答
151

在我的 Windows 机器中,我通过在当前项目目录中存在rules的文件对象中添加以下代码片段来解决此问题。.eslintrc.js

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

这也适用于我的 Mac

于 2020-08-30T06:21:40.930 回答
38

解决方案

git config --global core.autocrlf false

全局配置后,需要再次拉取代码。

问题的根本原因:

罪魁祸首是git,一个配置属性core.autocrlf

由于历史原因,文本文件上的换行符windowslinux不同。

  • Windows换行时,同时使用回车CR(carriage-return character)和换行LF(linefeed character)
  • Mac并且Linux只使用换行符LF
  • 旧版本Mac使用回车CR

因此,在不同系统中创建和使用文本文件时,会出现不兼容的问题。

当我在 上克隆代码时Windows,默认autocrlftrue,然后文件的每一行都会自动转换为CRLF. 如果您不对文件进行任何更改,则删除eslintCR自动转换为.pre-commitgitCRLFLF

参考

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

于 2021-04-28T18:24:18.913 回答
32

在辅助角色的文件 .eslintrc.json 中添加此代码将解决此问题

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

  }
于 2020-11-28T08:28:17.450 回答
27

如果上面的代码对您不起作用,请尝试这两个步骤。

1. 在文件 .eslintrc.json里面的 rules 对象中添加这段代码就可以解决这个问题

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

2 更改开发服务器--fix

npm run dev

npm run dev --fix

或者

npm run lint -- --fix
yarn run lint -- --fix
于 2021-05-22T09:52:39.533 回答
18

已修复 - 我的 .eslintrc.js 看起来像这样:

module.exports = {
  root: true,
  extends: '@react-native-community',
  rules: {'prettier/prettier': ['error', {endOfLine: 'auto'}]},
};
于 2020-12-26T08:17:08.753 回答
18

尝试这个。这个对我有用:

纱线运行皮棉--修复

或者

npm 运行 lint -- --fix

于 2020-12-14T13:41:22.060 回答
16

我知道这很旧,但我刚刚在我的团队中遇到了这个问题(一些 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/

于 2020-11-06T09:33:55.227 回答
11

修复:我的 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"
}
于 2021-03-20T17:28:30.713 回答
10

我用的是git+vscode+windows+vue,看了eslint文档后:https ://eslint.org/docs/rules/linebreak-style

最后通过以下方式修复它:

添加*.js text eol=lf.gitattributes

然后运行vue-cli-service lint --fix

于 2019-05-06T02:59:26.533 回答
10

将此添加到您的.prettierrc文件并打开VSCODE

"endOfLine": "auto"
于 2021-01-04T20:32:19.103 回答
8

在 .eslintrc 文件中添加以下内容:

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

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

在 .prettierrc 中删除:

  • endOfLine: 'auto'

这个对我有用。

于 2021-12-06T16:15:02.020 回答
8

在 .eslintrc 文件中添加以下规则,然后重新启动您的项目。

rules: {
    'prettier/prettier': ['error', { "endOfLine": "auto"}, { usePrettierrc: true }],  
}
于 2021-09-04T10:58:48.303 回答
6

检查底部 VS Code 状态栏的右侧,它显示行和列、空格、文本编码(UTF-8 等)等信息。您应该会看到一个Select End Of Line Sequence状态显示(LFCRLF),您可以单击它来更改。确保您没有手动将其更改为与您希望 Prettier 使用的内容相冲突的内容。

于 2021-05-24T13:40:17.523 回答
6

我在我的 Nest js 应用程序中遇到了同样的问题。将以下代码添加到.eslintrc.js规则中,然后运行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',
  },
],

},

于 2021-07-04T05:07:42.300 回答
5

我在这里尝试了一切,对我来说,我需要通过图标扩展>更漂亮>小引擎>扩展设置>更漂亮:行尾>设置为自动来管理更漂亮的配置扩展。

在我的 settings.json 中添加这两行之后

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

我能够在 .eslintrc.js 规则中使用下面的配置。

"prettier/prettier": ["error", {
    "endOfLine":"auto"
}],
于 2021-04-24T19:00:07.863 回答
3

在根目录中打开 .editorconfig 文件并更改:

end_of_line = lf

end_of_line = auto

这应该为新文件修复它。

于 2020-12-29T08:17:40.887 回答
3

我升级到“更漂亮”:“^2.2.0”并且错误消失了

于 2020-11-24T04:00:33.940 回答
3

对我有用的是:

  1. 按照 Roberto LL 的建议,将 prettier 更新到 2.2.1 版(目前的最新版本)。为此执行

npm 更新更漂亮

  1. 按照 Hakan 的建议执行 lint fix(这将修改项目中的所有文件以将行尾转换为 LF)。

npm 运行 lint -- --fix

没有必要更改 .eslintrc 和 .prettierrc 文件!

于 2021-01-23T23:15:32.120 回答
3

当我从 git 中提取代码时出现错误,这对我有用:

步骤1:

git config --global core.autocrlf false

第2步:

  • 删除当前文件夹

第 3 步:

  • 再次从 git 拉取代码
  • 再次尝试运行命令
于 2021-10-08T15:56:17.137 回答
3

在我的情况下,我在 Mac 中使用 Windows 操作系统和 git 代码支持并转换为 CRLF,在 cmd 提示符下运行命令以停止文件转换为 CRLF: 在此处输入图像描述

git config --global core.autocrlf input

再次签出代码并再次打开 Visual Studio Code 并再次运行您的脚本。它对我有用。

于 2021-04-14T15:47:15.680 回答
2

npm 运行 lint -- --fix

运行这个对我有用的命令

于 2022-01-14T13:47:54.450 回答
2

没有必要忽略 linter 的规则。只是自动修复它

npm install -g prettier
prettier -w .\webpack.config.js # or other file
于 2021-03-17T08:45:40.470 回答
1

以上所有答案都是正确的,但是当我使用 Windows 并禁用 Prettier ESLint 扩展 rvest.vs-code-prettier-eslint时,问题将得到解决。

于 2021-01-10T18:39:53.303 回答
1

编辑您的 .eslintrc.json 文件并更新如下所示的“prettier/prettier”值。

我面临同样的问题并使用以下更改进行修复。

"prettier/prettier": [
    "error", {
         "singleQuote": true,
         "parser": "flow" 
    }
],
于 2021-10-18T00:48:51.010 回答
1

如果您已经签出代码

git config --global core.autocrlf input 


git rm --cached -r . 


git reset --hard
于 2022-01-05T09:12:01.697 回答
1

解决方案

1.禁用自动转换git设置

git --global config core.autocrlf false

2.删除旧缓存数据

git rm --cached -r 。

3.重置git文件

git reset --hard

于 2021-10-01T09:48:54.157 回答
0

它为我工作

step-1 React js根目录下找到.eslintrc文件

第 2 步在 .eslintrc 中查找

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

用。。。来代替

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

保存文件然后运行

npm start
于 2021-10-10T04:53:54.660 回答
0

对于那些使用 @vue/prettier 的人来说,它和 eslint 之间可能存在冲突,从而导致此错误。尽管与 vue cli 一起安装,@vue/prettier 是一个临时解决方案,直到 prettier 本机接受 vue 并且已经完成。这个问题可以通过切换到“更漂亮”来解决

于 2022-02-15T21:09:40.410 回答
-5

从 tsx -> ts, jsx -> js 更改文件类型

如果您正在处理 .tsx 或 .jsx 文件并且您只是导出样式等而不是 jsx,则可能会出现此错误。在这种情况下,可以通过将文件类型更改为 .ts 或 .js 来解决错误

于 2021-01-19T06:43:30.093 回答