Skip to main content

@dg-scripts/eslint-config

Author LICENSE

Node Version NPM Version CDN

CI Vitest Coverage

This package includes the shareable ESLint configuration used by Bod CLI.

Installation

npm install -D @dg-scripts/eslint-config

Usage

Basic Usage

Create a file named eslint.config.js with following contents in the root folder of your project:

export { default } from '@dg-scripts/eslint-config'

With Custom Options

Use defineConfig to customize the configuration:

import { defineConfig } from '@dg-scripts/eslint-config'

export default defineConfig({
// Customize TypeScript options
typescript: {
tsconfigPath: './path/to/tsconfig.json', // Custom tsconfig path
},
// Disable some opinionated rules
lessOpinionated: true,
// Other options from @antfu/eslint-config
})

With Additional Rules

You can override or add rules by using defineConfig with additional configs (recommended):

import { defineConfig } from '@dg-scripts/eslint-config'

export default defineConfig(
{
typescript: {
tsconfigPath: 'tsconfig.json',
},
},
{
name: 'cypress',
ignores: ['cypress', 'cypress.config.ts'],
},
{
name: 'react',
rules: {
'react-refresh/only-export-components': 'off',
},
},
)
import { defineConfig } from '@dg-scripts/eslint-config'

export default defineConfig(
{
name: 'base',
rules: {
'node/prefer-global/process': 'off',
'react-refresh/only-export-components': 'off',
},
},
{
name: 'ui',
files: ['src/components/ui/*.tsx'],
rules: {
'react/no-children-map': 'off',
'react/no-clone-element': 'off',
},
},
)

Or by chaining methods (not recommended):

import eslintConfig from '@dg-scripts/eslint-config'

export default eslintConfig
.append({
name: 'cypress',
ignores: ['cypress', 'cypress.config.ts'],
})
.append({
name: 'react',
rules: {
'react-refresh/only-export-components': 'off',
},
})

Type-Aware Rules

By default, type-aware rules are enabled with tsconfigPath: 'tsconfig.json'.

The configuration will automatically look for tsconfig.json in your project root. If your tsconfig.json is in a different location, you can customize it:

import { defineConfig } from '@dg-scripts/eslint-config'

export default defineConfig({
typescript: {
tsconfigPath: './path/to/tsconfig.json',
},
})

To disable type-aware rules:

import { defineConfig } from '@dg-scripts/eslint-config'

export default defineConfig({
typescript: true, // Enable TypeScript support without type-aware rules
})

Next.js

When package next and @next/eslint-plugin-next are installed in your project, the Next.js configuration will be enabled automatically. No additional configuration is required.

Rules

See ESLint inspector report for more details.

Contact

Email X GitHub