A collection of reusable configuration packages for Prettier, ESLint, Stylelint and TypeScript. The goal is to enforce a consistent coding style, linting, and compiler setup across multiple projects (Node, React, Next.js, Expo, monorepos (Turbo)).
Install the dependencies -
npm install --save-dev @krudi/prettier-config @krudi/eslint-config @krudi/stylelint-config @krudi/typescript-config
| Package | Description | Version | Additional Information |
|---|---|---|---|
| @krudi/prettier-config | Shared Prettier configuration | ||
| @krudi/eslint-config | Shared ESLint flat configuration | ||
| @krudi/stylelint-config | Shared Stylelint configuration | ||
| @krudi/typescript-config | Shared TypeScript configuration |
Each package can be installed individually depending on your needs.
Create prettier.config.mjs (or prettier.config.js) in your project root and extend the configuration you need:
// ESM
import base from '@krudi/prettier-config/base';
/** @type {import("prettier").Options} */
export default {
...base,
};
// CommonJS
const base = require('@krudi/prettier-config/base');
/** @type {import('prettier').Options} */
module.exports = {
...base,
};Create eslint.config.mjs (or eslint.config.ts) in your project root and extend the configuration you need:
import base from '@krudi/eslint-config/base';
import prettier from '@krudi/eslint-config/prettier';
import turbo from '@krudi/eslint-config/turbo';
export default [...base, ...prettier, ...turbo];| File | Purpose |
|---|---|
| @krudi/eslint-config/base | Base ESLint rules for general TypeScript/JavaScript projects |
| @krudi/eslint-config/react | React-specific ESLint configuration with hooks, JSX runtime, and React global definitions |
| @krudi/eslint-config/nextjs | Additional rules and plugins for Next.js projects |
| @krudi/eslint-config/expo | Extra configuration for Expo React Native projects |
| @krudi/eslint-config/prettier | Ensures compatibility between ESLint and Prettier |
| @krudi/eslint-config/turbo | Linting rules tailored for Turborepo monorepos |
Install the Stylelint config and its peers:
npm install -D @krudi/stylelint-configstylelint.config.cjs:
module.exports = {
extends: ['@krudi/stylelint-config'],
};stylelint.config.mjs:
export default {
extends: ['@krudi/stylelint-config'],
};Create tsconfig.json in your project root and extend the configuration you need:
{ 'extends': '@krudi/typescript-config/base.json', 'compilerOptions': {}, 'exclude': ['node_modules', 'dist'] }| File | Purpose |
|---|---|
| @krudi/typescript-config/base.json | Base configuration for general TypeScript projects |
| @krudi/typescript-config/nextjs.json | Optimized settings for Next.js projects |
| @krudi/typescript-config/expo.json | Preconfigured options for Expo apps |
| @krudi/typescript-config/external-package.json | Strict, safe config for public npm packages (external consumption, includes declarations) |
| @krudi/typescript-config/internal-package.json | Config for internal monorepo-only packages, optimized for development speed |
- First clone this repository and navigate into your project directory
- Install the dependencies:
npm install npm run build- to build all packagesnpm run dev- run the TypeScript server