我使用VS Code与漂亮的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
  }
}

. pretierrc文件:

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

如何消除这个错误?


尝试在你的. pretierrc(或. pretierrc .json)文件中设置" endoline ":"auto"(在对象内部)

或一组

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

在eslintrc文件的rules对象中。

如果你使用的是windows机器,endoline可以“crlf”基于你的git配置。


在VSCode上改变这个设置。


我使用git+vscode+windows+vue,阅读eslint文档后:https://eslint.org/docs/rules/linebreak-style

最后通过以下方法进行修复:

添加*.js文本eol=lf到.gitattributes

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


在我的windows机器中,我通过在我当前项目目录中的.eslintrc.js文件的规则对象中添加以下代码片段来解决这个问题。

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

这在我的Mac上也能运行


我知道这是旧的,但我刚刚在我的团队(一些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/


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


在.eslintrc.json文件中 在侧角色添加此代码将解决这个问题

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

  }

试试这个。这对我来说很管用:

纱线跑线——固定

or

NPM运行lint -- --fix


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

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

在根目录下打开。editorconfig文件,修改如下:

End_of_line = lf

to

End_of_line = auto

这应该可以修复新文件。


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

"endOfLine": "auto"

上面所有的答案都是正确的,但当我使用窗口并禁用更漂亮的ESLint扩展投资。Vs-code-prettier-eslint的问题将被修复。


对我有用的是:

按照Roberto LL的建议,更新到2.2.1版本(目前的最新版本)。要执行它

NPM更新更漂亮

按照Hakan的建议执行lint修复(这将修改项目中的所有文件,将行结束转换为LF)。

NPM运行lint -- --fix

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


没有必要忽视林特法则。只需要自动修复

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 在cmd提示符下运行命令停止文件转换为CRLF:

git config --global core.autocrlf input

再次签出代码并再次打开Visual Studio code并再次运行脚本。这对我很管用。


我在这里尝试了所有的东西,对我来说,我需要管理更漂亮的配置扩展通过图标扩展>更漂亮>小引擎>扩展设置>更漂亮:结束>设置为自动。

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

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

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

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

解决方案

git config --global core.autocrlf false

在全局配置之后,您需要再次拉出代码。

问题的根本原因:

罪魁祸首是git, core. selff的配置属性

由于历史原因,windows和linux下文本文件的换行方式不同。

在换行时,换行符同时使用CR(换行符)和LF(换行符) Mac和Linux只使用换行符LF 旧版本的Mac使用回车CR

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

当我在Windows上克隆代码时,默认为true,然后文件的每一行都自动转换为CRLF。如果你没有对文件做任何改变,eslint通过预提交删除CR,因为git会自动将CRLF转换为LF。

参考

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


如果上述代码不适合您,请尝试以下两个步骤。

1. 在规则对象内的文件.eslintrc.json中添加此代码将解决此问题

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

2 更改开发服务器—修复

npm run dev

To

npm run dev --fix

OR

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

检查VS Code底部状态栏的右侧,在那里它显示了诸如行和列,空格,文本编码(UTF-8等)等信息。您应该看到一个Select End Of Line Sequence状态显示(LF或CRLF),您可以单击它进行更改。请确保您没有手动更改它,使其与您希望pretty使用的内容冲突。


我在我的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——全局配置核心。autocrlf假

2. 删除旧的缓存数据

Git rm——cached -r。

3.重置git文件

Git重置——很难


错误出现时,我拉代码从git,这为我工作:

步骤1:

Git配置——全局核心。autocrlf假

步骤2:

删除当前文件夹

步骤3:

再次从git中提取代码 尝试再次运行命令


这是我的工作

步骤1 React js根目录找到.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"值。

我也面临同样的问题,并修改了使用下面的更改。

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

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

Extends: ['prettier']和plugins: ['prettier'] 规则:{'更漂亮/更漂亮':['错误',{endoline: 'auto'}]}

在. pretierrc中删除:

endOfLine:’auto’

这对我很管用。


如果您已经签出了代码

git config --global core.autocrlf input 


git rm --cached -r . 


git reset --hard

NPM运行lint -- --fix

运行这个命令,这对我有用


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


正如你所看到的,将此添加到.eslintrc工作!


如果你需要使用.prettierrc.js:

module.exports = {
    ...[config params],
    endOfLine: 'auto',
};

注意!不是在规则或更漂亮。

信息在这里https://prettier.io/docs/en/options.html#end-of-line


执行eslint进行检测和修复解决了我的问题。

eslint。, ext .vue . js .jsx、.cjs .mjs, .ts, .tsx .cts,。MTS—fix—ignore-path .gitignore

或者如果你有lint脚本:NPM运行lint


最好的解决方案是使用.editorconfig。特别是当您与不同类型操作系统的团队一起工作时。因此,在.eslintrc中禁用prettier根本不是一个好的选择。

从vscode扩展安装.editorconfig。在你的项目根目录下创建一个。editorconfig文件,并把它放到你的。gitignore文件中,这样就不会打扰你的队友了。

将其添加到您的.editorconfig文件中,或者从文档中选择您需要的工作流设置。

[*]
end_of_line = lf

这将自动保存您的文件到EOL类型lf,而不是在windows中的crlf。反之亦然,如果使用mac。或取决于项目工作流程设置。

根本原因是windows默认为crlf。所以每次你尝试创建一个文件,你将面对这个漂亮的删除'cr'错误。

除了

如果你从git中获得的所有文件都包含删除'cr'。

删除项目 重新安装git并选择按原样结帐,提交unix风格的行结束符 再次从回购中克隆您的项目 使用上面设置的.editorconfig


您需要在.eslintrc文件中添加规则

"extends": ["plugin:prettier/recommended"],
"plugins": ["prettier"],
"rules": {
 "prettier/prettier": ["error"],
 "@typescript-eslint/no-unsafe-call": "off",
 "@typescript-eslint/unbound-method": "off",
 "@typescript-eslint/no-explicit-any": "off",
 "@typescript-eslint/no-unsafe-member-access": "off",
 "@typescript-eslint/no-unsafe-assignment": "off",
 "@typescript-eslint/no-empty-function": "off",
 "@angular-eslint/no-empty-lifecycle-method": "off",
 "@typescript-eslint/no-unused-vars": ["off"],
 "@typescript-eslint/require-await": "off",
 "@typescript-eslint/ban-types": "off"
}

从. pretierrc文件中删除这一行

 "endOfLine": "crlf"