为什么我总是收到“[eslint] Delete ' CR '[更漂亮/更漂亮]”;

我使用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
}
}

.prettierrc文件:

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

如何消除这个错误?

451535 次浏览

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

或一组

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

eslintrc文件的rules对象中。

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

在VSCode上改变这个设置。

enter image description here

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

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

添加*.js text eol=lf.gitattributes

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

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

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

这在我的Mac上也能运行

我知道这是旧的,但我刚刚在我的团队(一些mac,一些linux,一些windows,所有的vscode)遇到了这个问题。

解决方案是在vscode的设置中设置行结束:

# EYZ0

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

< a href = " https://qvault。io / 2020/06/18 / how-to-get-consistent-line-breaks-in-vs-code-lf-vs-crlf / noreferrer“rel = > https://qvault.io/2020/06/18/how-to-get-consistent-line-breaks-in-vs-code-lf-vs-crlf/ < / >

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

在side role中添加此代码将解决此问题

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


}

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

纱线跑线——固定

NPM运行lint -- --fix

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

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

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

# EYZ0

# EYZ0

这应该可以修复新文件。

将其添加到.prettierrc文件中,并打开VSCODE

"endOfLine": "auto"

上面所有的答案都是正确的,但当我使用窗口和禁用漂亮ESLint扩展 rvest.vs-code-prettier-eslint时,这个问题将被修复。

对我有用的是:

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

NPM更新更漂亮

  1. 按照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: # EYZ0 < / p >

git config --global core.autocrlf input

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

我尝试了这里的一切,对我来说,我需要管理更漂亮的配置扩展通过图标扩展>漂亮的在小型发动机>扩展设置>更漂亮:End Of Line >设置为自动。

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

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

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

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

解决方案

git config --global core.autocrlf false

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

问题的根本原因:

罪魁祸首是gitcore.autocrlf的配置属性

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

  • 在换行时,换行符CR(carriage-return character)和换行符LF(linefeed character)同时使用回车
  • MacLinux只使用换行符LF
  • 旧版本的Mac使用回车CR

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

当我在Windows上克隆代码时,autocrlf默认为真正的,然后文件的每一行都自动转换为CRLF。如果你不做任何改变的文件,eslint删除CRpre-commit,因为git自动转换CRLFLF

参考

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

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

< p > 1。 在文件.eslintrc.json 规则对象内部中添加这段代码,它将解决这个问题
 "prettier/prettier": ["error",{
"endOfLine": "auto"}
]
< p > 2 更改服务器开发,解决< / p >
npm run dev

npm run dev --fix

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

检查VS Code底部状态栏的右侧,在那里它显示了诸如行和列,空格,文本编码(UTF-8等)等信息。您应该看到Select End Of Line Sequence状态显示(低频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:

# EYZ0

步骤2:

  • 删除当前文件夹

步骤3:

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

这是我的工作

< p >步骤1 find .eslintrc文件

. js根目录 < p >步骤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']

  • < p > # EYZ0

在. pretierrc中删除:

  • # EYZ0

这对我很管用。

如果您已经签出了代码

git config --global core.autocrlf input




git rm --cached -r .




git reset --hard

NPM运行lint -- --fix

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

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

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

enter image description here

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

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

注意!不是在rulesprettier/prettier

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

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

# EYZ0

或者如果你有lint脚本:npm run lint

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

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

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

[*]
end_of_line = lf

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

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

< >强除了< / >强

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

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