|
1 | 1 | # @byscripts/eslint-config |
2 | 2 |
|
3 | | -Shared ESLint flat config for Vue 3 + TypeScript projects. |
| 3 | +Shared ESLint flat config for JavaScript, TypeScript, and Vue 3 projects. |
4 | 4 |
|
5 | 5 | ## Install |
6 | 6 |
|
| 7 | +### Vue 3 + TypeScript (full config) |
| 8 | + |
7 | 9 | ```bash |
8 | | -pnpm add -D @byscripts/eslint-config eslint |
| 10 | +pnpm add -D @byscripts/eslint-config eslint eslint-plugin-vue @vue/eslint-config-typescript @byscripts/eslint-plugin |
9 | 11 | ``` |
10 | 12 |
|
11 | | -The config references rules from `eslint-plugin-vue`, `typescript-eslint`, and `vue-eslint-parser`. These must be available at runtime. In a typical Vue + TypeScript project, they are already installed (via `@vue/eslint-config-typescript`, `eslint-plugin-vue`, etc.). If not, install them explicitly: |
| 13 | +```js |
| 14 | +// eslint.config.js |
| 15 | +import { vue } from "@byscripts/eslint-config/vue"; |
12 | 16 |
|
13 | | -```bash |
14 | | -pnpm add -D eslint-plugin-vue typescript-eslint vue-eslint-parser |
| 17 | +export default vue; |
15 | 18 | ``` |
16 | 19 |
|
17 | | -## Usage |
| 20 | +### TypeScript only |
| 21 | + |
| 22 | +```bash |
| 23 | +pnpm add -D @byscripts/eslint-config eslint |
| 24 | +``` |
18 | 25 |
|
19 | 26 | ```js |
20 | 27 | // eslint.config.js |
21 | | -import byscriptsConfig from "@byscripts/eslint-config"; |
| 28 | +import { typescript } from "@byscripts/eslint-config/typescript"; |
22 | 29 |
|
23 | | -export default [ |
24 | | - ...byscriptsConfig, |
25 | | - // your overrides here |
26 | | -]; |
| 30 | +export default typescript; |
27 | 31 | ``` |
28 | 32 |
|
29 | | -## Dev |
| 33 | +### JavaScript only |
30 | 34 |
|
31 | 35 | ```bash |
32 | | -pnpm build # compile src/index.ts -> dist/index.mjs + dist/index.d.mts |
33 | | -pnpm publish --access public # publish to npm (pnpm replaces workspace:* automatically) |
| 36 | +pnpm add -D @byscripts/eslint-config eslint |
| 37 | +``` |
| 38 | + |
| 39 | +```js |
| 40 | +// eslint.config.js |
| 41 | +import { javascript } from "@byscripts/eslint-config/javascript"; |
| 42 | + |
| 43 | +export default javascript; |
34 | 44 | ``` |
35 | 45 |
|
36 | 46 | ## Notes |
37 | 47 |
|
38 | | -- Built with `tsdown --dts` |
39 | 48 | - Uses ESLint flat config (`defineConfig` from `eslint/config`, available since ESLint 9.22) |
40 | 49 | - Peer dependency: `eslint ^9.22.0` |
41 | | -- `@byscripts/eslint-plugin` is a regular dependency (installed automatically) |
42 | | -- `eslint-plugin-vue`, `typescript-eslint`, and `vue-eslint-parser` must be available at runtime (usually already present in Vue + TS projects) |
| 50 | +- Vue-related dependencies (`eslint-plugin-vue`, `@vue/eslint-config-typescript`, `@byscripts/eslint-plugin`) are optional peer dependencies, only needed when using the Vue config |
0 commit comments