我有一个非常烦人的问题,EsLint和Prettier正在做不同的事情... 在格式化时,Prettier会将代码格式化为与EsLint预期不同的方式 我已经启用了默认的保存格式化程序
例如,这行代码:
const actionAbove = findNodeInForm(this.form, (nodeAbove.data as FlowChartData).key.replace('Group', '').replace('Root', ''));
当我解决它时,它会被标记为红色的lint错误:
const actionAbove = findNodeInForm(
this.form,
(nodeAbove.data as FlowChartData).key.replace('Group', '').replace('Root', '')
);
保存时,将格式化回成一行
Prettier配置:
{
"singleQuote": true,
"printWidth": 120
}
EsLint 配置
{
"root": true,
"ignorePatterns": ["projects/**/*", "src/models/*"],
"plugins": ["prettier"],
"overrides": [
{
"files": ["*.ts"],
"parserOptions": {
"project": ["tsconfig.json", "e2e/tsconfig.e2e.json"],
"createDefaultProgram": true
},
"extends": [
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:prettier/recommended",
"prettier"
],
"rules": {
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
],
"@typescript-eslint/array-type": [
"error",
{
"default": "array"
}
],
"@typescript-eslint/consistent-type-definitions": "error",
"@typescript-eslint/dot-notation": "off",
"@typescript-eslint/explicit-member-accessibility": [
"off",
{
"accessibility": "explicit"
}
],
"@typescript-eslint/no-empty-function": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/no-var-requires": "error",
"arrow-parens": ["off", "always"],
"brace-style": ["error", "1tbs"],
"id-blacklist": "off",
"id-match": "off",
"import/no-extraneous-dependencies": "off",
"import/no-internal-modules": "off",
"linebreak-style": "off",
"max-classes-per-file": ["error", 1],
"new-parens": "off",
"newline-per-chained-call": "off",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-empty": "error",
"no-extra-bind": "error",
"no-extra-semi": "off",
"no-irregular-whitespace": "off",
"no-new-func": "error",
"no-redeclare": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-template-curly-in-string": "error",
"no-underscore-dangle": "off",
"prefer-object-spread": "error",
"quote-props": "off",
"react/jsx-curly-spacing": "off",
"react/jsx-equals-spacing": "off",
"react/jsx-wrap-multilines": "off",
"space-before-function-paren": "off",
"space-in-parens": ["off", "never"]
}
},
{
"files": ["*.html"],
"extends": ["plugin:@angular-eslint/template/recommended", "prettier"],
"rules": {}
}
]
}