使用 Angular 配置 Prettier 和 ESLint

2025-06-07

使用 Angular 配置 Prettier 和 ESLint

每个人都希望能够快速编写出无 bug 的代码,而无需过多考虑代码风格。因此,本文我将讨论如何Angular项目中配置ESLintPrettier

ESLint 有何帮助?

通过静态分析我们的代码,ESLint 可以发现问题并提出修复建议。它甚至还能做得更好,自动修复代码(谁不想要呢?)。

安装和配置 ESLint

在本节中,我将解释如何在 Angular 项目中安装 ESLint,并对其进行配置以更好地符合 Angular 样式指南和社区标准。

打开终端并使用以下命令安装 ESLint 原理图:

ng add @angular-eslint/schematics

就是这样。现在我们已经安装并配置了 ESLint,这要感谢Angular-ESLint**ng add**团队提供的命令 以下是错误示例以及 ESLint 如何修复它:

关于 Angular 输入绑定别名的 ESLint 错误

ESLint 快速修复 Angular 输入别名

我们也可以在终端中运行这个命令:
ng lint --fix
来修复项目中所有可修复的错误。

安装和配置 Prettier

即使我们有 ESLint 来监控代码中的 bug,我们也需要一个工具来更好地设置代码的样式和格式。这就是 Prettier 的作用所在。

Prettier 是一个自以为是的代码格式化程序,可以帮助我们在每次保存代码时以标准化的方式美化代码。

打开终端并输入:
npm install prettier --save-dev
或者如果你使用 yarn :
yarn add prettier -D

然后我们需要在我们的根项目目录中添加.prettierrc.json.prettierignore文件。

在.prettierignore最好添加我们在.gitignore文件中拥有的任何内容。

然后我们可以在项目中运行此命令来格式化它:
npx prettier --write .

在.prettierrc.json中,我们可以通过覆盖默认设置来更改它们。

我最常用的设置是这样的:



{
  "tabWidth": 2,
  "useTabs": false,
  "singleQuote": true,
  "semi": true,
  "bracketSpacing": true,
  "arrowParens": "avoid",
  "trailingComma": "es5",
  "bracketSameLine": true,
  "printWidth": 80
}


Enter fullscreen mode Exit fullscreen mode

关于 Prettier 的内容就这些了。但我们还没有结束。

有时 ESLint 和 Prettier 对代码格式和样式会有不同意见。因此我们需要调整这部分。更多信息请点击此处

配置 Prettier 用作 ESLint 插件

为了使 ESLint 和 Prettier 能够良好地协同工作,我们需要将 Prettier 作为 ESLint 插件运行。这样,我们只需调用ng lint --fixPrettier,ESLint 就会修复错误,并格式化代码。

打开终端并输入:



npm install prettier-eslint eslint-config-prettier eslint-plugin-prettier — save-dev


Enter fullscreen mode Exit fullscreen mode

或者如果你使用 yarn:



yarn add prettier-eslint eslint-config-prettier eslint-plugin-prettier -D


Enter fullscreen mode Exit fullscreen mode

现在我们需要编辑.eslintrc.json文件以包含 prettier 插件。



{
  "root": true,
  "overrides": [
    {
      "files": ["*.ts"],
      "extends": [
        ...
        "plugin:prettier/recommended"
      ],
    },
    // NOTE: WE ARE NOT APPLYING PRETTIER IN THIS OVERRIDE, ONLY @ANGULAR-ESLINT/TEMPLATE
    {
      "files": ["*.html"],
      "extends": ["plugin:@angular-eslint/template/recommended"],
      "rules": {}
    },
    // NOTE: WE ARE NOT APPLYING @ANGULAR-ESLINT/TEMPLATE IN THIS OVERRIDE, ONLY PRETTIER
    {
      "files": ["*.html"],
      "excludedFiles": ["*inline-template-*.component.html"],
      "extends": ["plugin:prettier/recommended"],
      "rules": {
        // NOTE: WE ARE OVERRIDING THE DEFAULT CONFIG TO ALWAYS SET THE PARSER TO ANGULAR (SEE BELOW)
        "prettier/prettier": ["error", { "parser": "angular" }]
      }
    }
  ]
}


Enter fullscreen mode Exit fullscreen mode

VSCode 和 Webstorm 快捷方式

就是这样。我们已经完成了配置部分。

编辑文件后,我们需要格式化它并保存。这就是我们现在要为VS CodeWebstorm配置的内容。

首先确保你已经安装了 ESLint 和 Prettier 插件。WebStorm 默认支持这两个插件。

对于 VS Code,我们需要将以下行添加到settings.json



{
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true
    },
    "editor.formatOnSave": false
  },
  "[typescript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint",
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true
    },
    "editor.formatOnSave": false
  },
}


Enter fullscreen mode Exit fullscreen mode

对于 Webstorm:
我们需要检查:在Actions On Save设置页面运行 eslint --fix :
Webstorm 保存时修复文件

您可以在这里找到总结的步骤:Angular ESLint 和 Prettier 配置

如何自动化所有这些配置?

正如您所见,您需要安装和配置很多软件包。我可以自信地告诉您,有一种方法可以自动管理所有这些。NX就是答案

什么是 NX?
NX 是下一代构建系统,拥有一流的 Monorepo 支持和强大的集成功能。
如果我们将 Angular 应用迁移到 NX Monorepo(有一条简单的迁移路径),我们就可以免费获得所有这些开箱即用的配置。
但 NX 的独特之处在于它拥有一些非常强大的功能,例如计算缓存智能重建分布式任务执行远程构建缓存强大的代码生成器编辑器插件等等。

*就是这样。感谢您的阅读!下期再见。
*

文章来源:https://dev.to/this-is-angular/configure-prettier-and-eslint-with-angular-526c
PREV
在 Angular 中创建自定义模块
NEXT
Angular 正在获得新的模板语法