我将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,
}
如何摆脱这个错误?
答案 0 :(得分:38)
在Windows计算机中,我通过在当前项目目录中存在的rules
文件的.eslintrc.js
对象中添加以下代码片段来解决此问题。
"prettier/prettier": {
"error",
{
"endOfLine": "auto"
},
},
这也适用于我的Mac
答案 1 :(得分:10)
已修复 - 我的 .eslintrc.js 看起来像这样:
module.exports = {
root: true,
extends: '@react-native-community',
rules: {'prettier/prettier': ['error', {endOfLine: 'auto'}]},
};
答案 2 :(得分:8)
修正:我的 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"
}
答案 3 :(得分:7)
尝试在.prettierrc文件(对象内部)中设置"endOfLine":"auto"
或设置
"prettier/prettier": ["error", {
..
"endOfLine":"auto"
..
}],
在eslintrc文件的rules对象中。
如果您使用的是Windows机器,则可以基于git配置将“ endOfLine”设置为“ crlf”。
答案 4 :(得分:7)
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
默认为 true,然后文件的每一行都会自动转换为 CRLF
。如果您不对文件进行任何更改,则 eslint
删除 CR
由 pre-commit
自 git
自动将 CRLF
转换为 LF
。>
https://developpaper.com/solution-to-delete-%E2%90%8Deslint-prettier-prettier-error/
答案 5 :(得分:6)
将此添加到您的 .prettierrc 文件并打开 VSCODE
"endOfLine": "auto"
答案 6 :(得分:3)
检查 VS Code 底部状态栏的右侧,其中显示了行和列、空格、文本编码(UTF-8 等)等信息。您应该会看到一个 Select End Of Line Sequence
状态显示(LF 或 CRLF),您可以点击该显示进行更改。确保您没有手动将其更改为与您希望 Prettier 使用的内容冲突的内容。
答案 7 :(得分:2)
答案 8 :(得分:2)
如果以上代码对您不起作用,请尝试以下两个步骤。
1. 在文件 .eslintrc.json inside roles object 添加此代码将解决此问题
"prettier/prettier": ["error",{
"endOfLine": "auto"}
]
2 更改开发服务器 --fix
npm run dev
到
npm run dev --fix
或
npm run lint -- --fix
yarn run lint -- --fix
答案 9 :(得分:2)
尝试一下。它对我有用:
纱线运行棉绒--fix
或
npm运行棉绒---fix
答案 10 :(得分:2)
就我而言,我在 Mac 中使用 Windows 操作系统和 git 代码支持并转换为 CRLF 在 cmd 提示符下运行以下命令以阻止文件转换为 CRLF:
git config --global core.autocrlf input
再次签出代码并再次打开 Visual Studio Code 并再次运行您的脚本。它对我有用。
答案 11 :(得分:1)
我在 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',
},
],
},
答案 12 :(得分:1)
我在这里尝试了所有方法,对我来说,我需要通过图标扩展>更漂亮>小引擎>扩展设置>更漂亮:行尾>设置为自动来管理更漂亮的配置扩展。
在我的 settings.json 中添加这两行后
"eslint.run": "onSave",
"editor.formatOnSave": true,
我能够在 .eslintrc.js 规则中使用下面的配置。
"prettier/prettier": ["error", {
"endOfLine":"auto"
}],
答案 13 :(得分:1)
没有必要忽略 linter 的规则。只需自动修复它
npm install -g prettier
prettier -w .\webpack.config.js # or other file
答案 14 :(得分:1)
在根目录中打开 .editorconfig 文件并更改:
end_of_line = lf
到
end_of_line = auto
这应该可以修复新文件。
答案 15 :(得分:1)
在文件.eslintrc.json中 在辅助角色中添加此代码将解决此问题
"rules": {
"prettier/prettier": ["error",{
"endOfLine": "auto"}
]
}
答案 16 :(得分:1)
我升级到“更漂亮”:“ ^ 2.2.0”,错误消失了
答案 17 :(得分:1)
我知道这已经很老了,但是我只是在我的团队中遇到了这个问题(一些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/
答案 18 :(得分:1)
我正在使用git + vscode + windows + vue,并且在阅读eslint文档后:https://eslint.org/docs/rules/linebreak-style
最后通过以下方法修复它:
将*.js text eol=lf
添加到.gitattributes
然后运行vue-cli-service lint --fix
答案 19 :(得分:0)
对我有用的是:
npm 更新更漂亮
npm 运行 lint -- --fix
没有必要更改 .eslintrc 和 .prettierrc 文件!
答案 20 :(得分:0)
以上所有答案都是正确的,但是当我使用 Windows 并禁用 Prettier ESLint 扩展程序 rvest.vs-code-prettier-eslint
时,问题将得到解决。
答案 21 :(得分:-5)
更改文件类型从 tsx -> ts, jsx -> js
如果您正在处理 .tsx 或 .jsx 文件并且您只是导出样式等而不是 jsx,则可能会出现此错误。在这种情况下,通过将文件类型更改为 .ts 或 .js 来解决错误