@ignit/style-guide
v1.12.0
Published
Shareable style guide
Readme
@ignit/style-guide
Shareable style guide with ESLint, Prettier, Stylelint, and CSpell configurations.
Installation
npm install -D @ignit/style-guide eslint prettier stylelint cspellESLint
Create eslint.config.js:
import { customDefineConfig, core, typescript } from '@ignit/style-guide/eslint'
export default customDefineConfig({
configs: [core(), typescript()],
ignores: ['dist', 'build'],
})Available Configs
core()- Essential rules for all JavaScript/TypeScript projectstypescript()- TypeScript parser and rulesreact()- React framework rulesnext()- Next.js frameworkvue()- Vue.js frameworknode()- Node.js specific rulesjest()- Jest testing frameworkvitest()- Vitest testing frameworkplaywright()- Playwright e2e testingtanstackQuery()- TanStack Queryturbo()- Turborepo
Customizing Configs
Each factory function accepts a config parameter to extend or override settings:
import { customDefineConfig, core, typescript } from '@ignit/style-guide/eslint'
export default customDefineConfig({
configs: [
core(),
typescript({
rules: {
'@typescript-eslint/no-unused-vars': 'warn',
},
}),
],
ignores: ['dist'],
})Prettier
Create prettier.config.ts:
import type { Config } from 'prettier'
import { core } from '@ignit/style-guide/prettier'
const config: Config = {
...core,
}
export default configStylelint
Create stylelint.config.js:
import { core } from '@ignit/style-guide/stylelint'
/** @type {import("stylelint").Config} */
const config = {
...core,
}
export default configCSpell
Create cspell.config.js:
import { core } from '@ignit/style-guide/cspell'
/** @type {import("cspell").FileSettings} */
const config = {
...core,
ignorePaths: [...core.ignorePaths],
ignoreWords: [],
}
export default configScripts
Add to your package.json:
{
"scripts": {
"lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:stylelint && npm run lint:cspell",
"lint:eslint": "eslint",
"lint:prettier": "prettier --check .",
"lint:stylelint": "stylelint ./**/*.css --cache",
"lint:cspell": "cspell --no-progress --no-summary --unique '**'",
"lint:fix": "npm run lint:eslint -- --fix && npm run lint:prettier -- --write && npm run lint:stylelint -- --fix"
}
}License
MIT
