2.0.2 • Published 9 months ago

@lcbase/eslint-config-reactts v2.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Eslint Config for ReactTs project

This package provides Eslint's Config for ReactTs project.

Note 1: Only support the new Eslint flat config.

Note 2: This config is using the Airbnb eslint config.

Usage

1. Install package

pnpm add -D @lcbase/eslint-config-reactts eslint

2. Add config to your eslint.config.js. Please read more about Eslint Flat Config

import { baseReactTsConfig } from '@lcbase/eslint-config-reactts';

export default baseReactTsConfig;

3. Create a tsconfig.eslint.json file in root folder

{
  // extend your base config to share compilerOptions, etc
  "extends": "./tsconfig.json",
  "compilerOptions": {
    // ensure that nobody can accidentally use this config for a build
    "noEmit": true
  },
  "include": [
    // whatever paths you intend to lint
    "**/*.ts",
    "**/*.tsx"
  ]
}

4. Add script to your package.json.

{
  "scripts": {
    "lint": "eslint \"src/**/*.{ts,tsx}*\"",
    "lint:fix": "pnpm lint --fix"
  }
}

5. Combine with @lcbase/prettier-config packages

pnpm add -D prettier @lcbase/prettier-config
{
  "prettier": "@lcbase/prettier-config",
  "scripts": {
    "lint": "eslint \"src/**/*.{ts,tsx}*\"",
    "lint:fix": "pnpm lint --fix",
    "prettify": "prettier src --check",
    "prettify:fix": "prettier src --write",
    "format": "pnpm prettify:fix && pnpm lint:fix"
  }
}

6. Configuration your VScode.

In root your project's folder. Create .vscode folder with structure:

.vscode
  - settings.json
{
  "eslint.experimental.useFlatConfig": true,
  // if mono-repo remove below line comment
  // "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
  "eslint.options": {
    "overrideConfigFile": "eslint.config.js"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}

7. Setup git hooks

  • Install packages and global setup husky, lint-staged.
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
  • Add the following to your package.json:
{
  "scripts": {
    "prepare": "husky install"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
    "*.{json,css,md,html}": ["pnpm prettify:fix"]
  }
}

Extends

You can extends this config by:

import { extendBaseReactTsConfig } from '@lcbase/eslint-config-reactts';

const config = extendBaseReactTsConfig({
  files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
  extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
});

export default config;
1.9.1

9 months ago

1.9.0

9 months ago

1.8.0

9 months ago

1.7.0

9 months ago

1.2.5

11 months ago

1.6.0

9 months ago

1.5.0

10 months ago

1.4.0

10 months ago

1.3.0

10 months ago

2.0.2

9 months ago

2.0.1

9 months ago

2.0.0

9 months ago

1.9.10

9 months ago

1.9.9

9 months ago

1.9.8

9 months ago

1.9.7

9 months ago

1.9.6

9 months ago

1.9.5

9 months ago

1.9.4

9 months ago

1.9.3

9 months ago

1.9.2

9 months ago

1.2.4

11 months ago

1.2.3

11 months ago

1.2.2

11 months ago

1.2.1

12 months ago

1.2.0

12 months ago

1.1.0

12 months ago

1.0.0

12 months ago