Guide
This guide focuses on practical setup for frontend teams using @ntnyq/eslint-config.
Requirements
- Node.js ^22.13.0 || >=24.11.0
- ESLint ^9.38.0 (or ^10)
Quick Start
Install dependencies:
shell
pnpm add -D eslint typescript @ntnyq/eslint-configshell
npm i -D eslint typescript @ntnyq/eslint-configshell
yarn add -D eslint typescript @ntnyq/eslint-configshell
bun add -D eslint typescript @ntnyq/eslint-configCreate eslint.config.mjs:
js
// @ts-check
import { defineESLintConfig } from '@ntnyq/eslint-config'
export default defineESLintConfig()Add scripts:
json
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}Run:
shell
pnpm lintHow Auto-Detection Works
defineESLintConfig() enables or disables parts based on your project context:
vueenabled when Vue dependency existstypescriptenabled when TypeScript dependency existstestenabled when Vitest dependency existsprettierenabled when Prettier dependency existsunocssenabled when UnoCSS dependency exists
You can always force behavior manually.
Frontend Recipes
Vue 3 + TypeScript
js
import { defineESLintConfig } from '@ntnyq/eslint-config'
export default defineESLintConfig({
vue: true,
typescript: {
tsconfigPath: './tsconfig.app.json',
},
})React + TypeScript
js
import { defineESLintConfig } from '@ntnyq/eslint-config'
export default defineESLintConfig({
vue: false,
typescript: {
tsconfigPath: './tsconfig.json',
},
})Enable optional configs when needed
js
import { defineESLintConfig } from '@ntnyq/eslint-config'
export default defineESLintConfig({
svgo: true,
html: true,
unusedImports: true,
})Customization Basics
Override built-in rules:
js
import { defineESLintConfig } from '@ntnyq/eslint-config'
export default defineESLintConfig({
vue: {
overrides: {
'vue/multi-word-component-names': 'off',
},
},
})Add project-level custom flat config blocks:
js
import { defineESLintConfig } from '@ntnyq/eslint-config'
export default defineESLintConfig({}, [
{
files: ['**/scripts/**'],
rules: {
'no-console': 'off',
},
},
])Formatter Integration
Choose one formatter strategy for the project.
Prettier path
shell
pnpm add -D prettier @ntnyq/prettier-configOxfmt path
shell
pnpm add -D oxfmtVS Code minimal settings:
json
{
"eslint.enable": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never",
"source.sortImports": "never"
}
}