@peculiar/eslint-config-base
v0.2.9
Published
Base ESLint configuration for JavaScript/TypeScript linting
Downloads
3,000
Keywords
Readme
@peculiar/eslint-config-base
A base ESLint configuration for modern JavaScript and TypeScript projects. This package integrates recommended configurations from core ESLint, TypeScript, stylistic rules, and the import plugin to provide a comprehensive and consistent coding standard.
Quick Start
[!IMPORTANT]
If you are using pnpm, be sure to create a.npmrcfile with at least the following settings:auto-install-peers=true node-linker=hoistedThis ensures that pnpm installs dependencies in a way that is more compatible with npm and is less likely to produce errors.
Step 1: Install the Package
To install the @peculiar/eslint-config-base package, run:
npm install -D @peculiar/eslint-config-baseStep 2: Configure ESLint
To use @peculiar/eslint-config-base in your project, configure your ESLint to extend this configuration.
- Create or update your ESLint configuration file (e.g.,
eslint.config.mjs). - Extend
@peculiar/eslint-config-baseas shown below:
Example: eslint.config.mjs
import tseslint from 'typescript-eslint';
import baseConfig from '@peculiar/eslint-config-base';
export default tseslint.config([
...baseConfig,
]);Step 3: Run the Linter
After setting up, you can run ESLint using the following command:
npx eslintFeatures
This configuration includes:
- Core ESLint Rules: Based on
@eslint/js'srecommendedconfiguration. - TypeScript Support: Includes strict and stylistic configurations from
@typescript-eslint. - Stylistic Rules: Customized rules via
@stylistic/eslint-pluginto enforce code consistency. - Import Plugin: Recommended settings for handling imports using
eslint-plugin-import. - Custom Rules: Tailored rules for statement padding, object formatting, and more.
Customizations
Feel free to override or extend the rules in your project-specific ESLint configuration as needed. For example:
Ignoring Specific Files or Folders
To specify files or folders to ignore in your project, add the following to your ESLint configuration:
import tseslint from 'typescript-eslint';
import baseConfig from '@peculiar/eslint-config-base';
export default tseslint.config([
...baseConfig,
{
// ...
},
{
ignores: [
'**/dist/*',
'**/public/*',
],
},
]);Enabling any Type
To allow the use of any in your code, add the following to your ESLint configuration:
import tseslint from 'typescript-eslint';
import baseConfig from '@peculiar/eslint-config-base';
export default tseslint.config([
...baseConfig,
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
]);Adding a Custom Rule
import tseslint from 'typescript-eslint';
import baseConfig from '@peculiar/eslint-config-base';
export default tseslint.config([
...baseConfig,
{
rules: {
'your-custom-rule': 'warn',
},
},
]);License
This project is licensed under the MIT License.
