Guide ​
This guide focuses on practical setup for frontend teams using @ntnyq/eslint-config.
Requirements ​
- Node.js ^22.23.0 || >=24.15.0
- ESLint ^10.4.0
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 existspiniaenabled when Pinia dependency existsprettierenabled when Prettier dependency existsoxfmtenabled when oxfmt 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"
}
}