Skip to content

πŸ“ ESlint, Stylelint, Commitlint, Prettier, Remark, Semantic Release config for LobeHub

License

Notifications You must be signed in to change notification settings

lobehub/lobe-lint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

238 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Lobe Lint

ESLint, Prettier, Stylelint, Commitlint, Remarklint, and Semantic Release configs for LobeHub

Changelog Β· Report Bug Β· Request Feature


Table of contents

TOC

Features

  • ESM-first - Modern ES Modules support
  • ESLint 9 Flat Config - Latest ESLint configuration format
  • TypeScript - Full TypeScript support with type-aware rules
  • React/Next.js/Remix - React ecosystem support
  • React Native - Mobile development support
  • Monorepo - Modular packages for flexible usage

Packages

Package Version Description
@lobehub/eslint-config ESLint Flat Config
@lobehub/prettier-config Prettier config
@lobehub/stylelint-config Stylelint config
@lobehub/commitlint-config Commitlint config
@lobehub/remarklint-config Remarklint config
@lobehub/semantic-release-config Semantic release config
@lobehub/lint Meta package (all configs)
create-lobe-lint CLI setup tool

Installation

Install the meta package for all configs:

bun add -D @lobehub/lint

Or install individual packages as needed:

# ESLint only
bun add -D @lobehub/eslint-config eslint typescript

# Prettier only
bun add -D @lobehub/prettier-config prettier

Quick Start (CLI)

The fastest way to set up LobeHub lint configs in your project is using the CLI tool:

npx create-lobe-lint

This will start an interactive setup that auto-detects your project configuration (package manager, TypeScript, React framework) and generates the appropriate config files.

# Quick setup with preset defaults
npx create-lobe-lint --preset -y

# Select specific tools with framework
npx create-lobe-lint --eslint --prettier --react next

# Manual selection mode
npx create-lobe-lint --manual

VSCode Settings

The CLI can generate .vscode/settings.json to suppress disruptive ESLint auto-fix rules (import sorting, object key sorting, etc.) that conflict with your editing workflow:

# Include VSCode settings in setup
npx create-lobe-lint --preset --vscode -y

# Skip VSCode settings
npx create-lobe-lint --preset --no-vscode -y

Generated settings disable auto-fix for rules like perfectionist/sort-enums, perfectionist/sort-interfaces, simple-import-sort/imports, react/jsx-sort-props, and optionally unused-imports/no-unused-imports, while keeping them as informational diagnostics.

See create-lobe-lint for full options and documentation.

Usage

ESLint

Create eslint.config.mjs:

import { defineConfig } from '@lobehub/eslint-config';

export default defineConfig({
  // Enable React with Next.js support
  react: 'next',
  // Enable TypeScript strict mode
  typescript: 'strict',
});

See @lobehub/eslint-config for full options.

Prettier

Create prettier.config.mjs:

import { prettier } from '@lobehub/lint';

export default prettier;

Stylelint

Create stylelint.config.mjs:

import { stylelint } from '@lobehub/lint';

export default stylelint;

Commitlint

Create commitlint.config.mjs:

import { commitlint } from '@lobehub/lint';

export default commitlint;

Remarklint

Create .remarkrc.mjs:

import { remarklint } from '@lobehub/lint';

export default remarklint;

Semantic Release

Create .releaserc.mjs:

import { semanticRelease } from '@lobehub/lint';

export default semanticRelease;

Migration from v1

Breaking Changes

  • ESM only - CommonJS is no longer supported
  • ESLint 9 - Requires ESLint 9+ with Flat Config
  • Node.js 18 - Requires Node.js 18+

Migration Steps

  1. Update your config files to use ESM syntax (.mjs extension or "type": "module")
  2. Replace .eslintrc.js with eslint.config.mjs
  3. Update imports:

Before (v1):

module.exports = require('@lobehub/lint').eslint;

After (v2):

import { defineConfig } from '@lobehub/eslint-config';

export default defineConfig({
  react: true,
});

Local Development

You can use Github Codespaces for online development:

Or clone it for local development:

git clone https://github.com/lobehub/lobe-lint.git
cd lobe-lint
pnpm install
pnpm build

Contributing

Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub Issues to get stuck in to show us what you're made of.


πŸ“ License

Copyright Β© 2026 LobeHub.
This project is MIT licensed.

About

πŸ“ ESlint, Stylelint, Commitlint, Prettier, Remark, Semantic Release config for LobeHub

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors 8

Languages