@skarab/eslint-config v5.0.0
My shared ESLint config
Installation
pnpm add -D typescript eslint @skarab/eslint-config
Basic usage
Add @skarab/eslint-config/recommended
or @skarab/eslint-config/recommended-commonjs
to the extends section of your ESLint configuration file.
{
"extends": ["some-other-config-you-use", "@skarab/eslint-config/recommended"]
}
Advenced usages
This ESLint configuration is designed to be highly customizable, allowing for flexible setup options that cater to different environments and scenarios, including automatic detection of TypeScript.
Importing and Configuring
To start, in your .eslintrc.js
, import the config
function:
const { config } = require('@skarab/eslint-config');
Configuring options
The config
function accepts an object of type ConfigOptions
, enabling you to customize the ESLint setup for your project. The configuration supports automatic TypeScript detection but also allows you to explicitly enable or disable TypeScript support based on your requirements.
Here's an example of configuring the ESLint setup:
// .eslintrc.js
// ...
module.exports = config({
ts: true,
jsx: true,
node: true,
browser: false,
type: 'module',
ecmaVersion: 2020,
environments: ['jest'],
reportUnusedDisableDirectives: true,
ignores: ['**/dist/**', '**/node_modules/**'],
});
Example Usage
Basic Configuration for Node.js
For a simple Node.js project using ECMAScript modules:
const basicConfig = config({
node: true,
type: 'module',
});
TypeScript Project
For a project using TypeScript, where TypeScript is detected automatically:
const tsConfig = config({
// TypeScript is automatically detected
jsx: true,
ecmaVersion: 2020,
});
To explicitly disable TypeScript support:
const tsConfigExplicit = config({
ts: false,
jsx: true,
ecmaVersion: 2020,
});
Browser Environment
For a project tailored to run in a browser environment:
const browserConfig = config({
browser: true,
node: false,
});
Related tools
My other shared configurations
4 months ago
4 months ago
4 months ago
4 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago