@team23/eslint-config-team23-angular
Version: 
A set of eslint rules used by TEAM23 for angular projects
80 lines (58 loc) • 2.2 kB
Markdown
A comprehensive ESLint configuration used by TEAM23 for maintaining consistent and strict angular coding standards.
Add the library to your `package.json` as a `devDependency`:
```bash
npm i --save-dev @team23/eslint-config-team23-angular
```
To use the shareable config, import the package inside an `eslint.config.js` file and add it to the exported array:
```ts
// eslint.config.js (ES Module)
import team23Angular from "@team23/eslint-config-team23-angular";
export default [
    ...team23Angular,
];
```
```js
// eslint.config.js (CommonJS)
const team23Angular = require('@team23/eslint-config-team23-angular');
module.exports = [
    ...team23Angular.default,
];
```
You can override settings from the shareable config by adding them directly into your eslint.config.js
file after importing the shareable config. For example:
```js
// eslint.config.js
import team23Angular from "@team23/eslint-config-team23-angular";
export default [
    ...team23Angular,
    // Any settings added here will override team23Angular
    {
        rules: {
            "@angular-eslint/template/cyclomatic-complexity": "error",
        }
    }
];
```
If you are extending `plugin:@nx/angular` in your eslint config, you will use the `FlatCompat` utility make them available in your flat config. (See the [migration guide](https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config) for more on this process.)
While the Nx config can be used this way in parallel with the team23 Angular config, both configs define the plugin `@angular-eslint`, which is not allowed. To use both configs, you can overwrite the `plugins` parameter in the FlatCompat result:
```js
// eslint.config.js
import team23Angular from "@team23/eslint-config-team23-angular";
// Prepare compat following the migration guide
// [...]
export default [
    ...team23Angular,
    ...compat
        .extends('plugin:@nx/angular')
        .map(config => ({
            ...config,
            // Replace the plugins object to prevent redefining
            plugins: {},
        })),
];
```