@lzear/configs
v4.2.2
Published
Shared configs for lzear repos — tsconfig, vitest, tsup, vite
Readme
@lzear/configs
Shared configs for lzear repos: tsconfig, vitest, tsup, vite, and commitlint.
Install
npm install -D @lzear/configs
# or
yarn add -D @lzear/configsRequires Node ≥ 20.
tsconfig
Three presets available:
| Preset | Entry point | Use for |
|-----------|--------------------------------------|---------------------------|
| app | @lzear/configs/tsconfig/app | Applications (no dts) |
| lib | @lzear/configs/tsconfig/lib | Libraries (emits dts) |
| react | @lzear/configs/tsconfig/react | React/JSX projects |
tsconfig.json:
{
"extends": "@lzear/configs/tsconfig/lib"
}Override individual options as needed:
{
"extends": "@lzear/configs/tsconfig/app",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src"]
}tsup
// tsup.config.ts
import { defineLibConfig } from '@lzear/configs/tsup'
export default defineLibConfig({
index: 'src/index.ts',
})For packages with a CLI binary:
import { defineBinConfig, defineLibConfig } from '@lzear/configs/tsup'
export default [
defineLibConfig({ index: 'src/index.ts' }),
defineBinConfig({ bin: 'src/bin.ts' }),
]vitest
// vitest.config.ts
import config from '@lzear/configs/vitest'
export default configFor React projects (adds jsdom environment and @vitejs/plugin-react):
import config from '@lzear/configs/vitest/react'
export default configvite
// vite.config.ts
import config from '@lzear/configs/vite'
export default configcommitlint
// commitlint.config.ts
import config from '@lzear/configs/commitlint'
export default configEnforces Conventional Commits with header-max-length of 100.
Pair with lefthook.yml:
commit-msg:
commands:
commitlint:
run: yarn commitlint --edit {1}Emoji rule
Require every commit message to start with an emoji:
import emoji from '@lzear/configs/commitlint/emoji'
export default emojiCombine with conventional commits:
import base from '@lzear/configs/commitlint'
import emoji from '@lzear/configs/commitlint/emoji'
export default {
...base,
plugins: [...(base.plugins ?? []), ...(emoji.plugins ?? [])],
rules: { ...base.rules, ...emoji.rules },
}Part of forge
This package is part of forge — shared dev tooling for lzear repos.
