@rovik/eslint
v1.1.1
Published
Shared ESLint configuration for Vue and NestJS projects
Downloads
34
Maintainers
Readme
@rovik/eslint
Shared ESLint and Prettier configuration for Vue and NestJS projects.
Installation
npm install @rovik/eslint --save-devPeer Dependencies
npm install eslint typescript --save-devFor Vue projects:
npm install vue --save-devUsage
Vue Projects
Create eslint.config.js in your project root:
import { defineEslintVue } from '@rovik/eslint/vue'
export default defineEslintVue()With custom options:
import { defineEslintVue } from '@rovik/eslint/vue'
export default defineEslintVue({
ignores: ['**/generated/**', '**/dist/**'],
overrides: [
{
files: ['**/*.test.ts'],
rules: {
'max-lines': 'off'
}
}
]
})NestJS / Node.js Projects
Create eslint.config.js in your project root:
import { defineEslintNode } from '@rovik/eslint/node'
export default defineEslintNode()With custom options:
import { defineEslintNode } from '@rovik/eslint/node'
export default defineEslintNode({
nestjs: true, // Enable NestJS-specific rules (default: true)
ignores: ['**/generated/**'],
overrides: [
{
files: ['**/*.e2e-spec.ts'],
rules: {
'max-lines-per-function': 'off'
}
}
]
})The nestjs: true option automatically adds overrides for:
*.dto.tsfiles - relaxed indent rules*.entity.tsfiles - relaxed indent rules*.types.ts,*.interface.tsfiles - allows namespaces*.spec.ts,*.test.ts,*.e2e-spec.tsfiles - relaxed complexity rules
Prettier Configuration
Create prettier.config.js in your project root:
import { prettierConfig } from '@rovik/eslint'
export default prettierConfigWith customization:
import { definePrettier } from '@rovik/eslint'
export default definePrettier({
printWidth: 120,
semi: true
})Default Prettier config:
{
"semi": false,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "auto"
}Package Scripts
Add these scripts to your package.json:
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write \"src/**/*.{ts,vue}\"",
"format:check": "prettier --check \"src/**/*.{ts,vue}\""
}
}Importing Individual Rules
You can import individual rule sets for custom configurations:
import {
bestPracticesRules,
complexityRules,
formattingRules,
stylisticRules,
typescriptRules,
vueRules,
importRules,
unusedImportsRules
} from '@rovik/eslint'For Node.js specific rules:
import {
nodeComplexityRules,
nodeImportRules,
nodeSimpleImportSortRules
} from '@rovik/eslint'TypeScript Configuration
Ensure your tsconfig.json is properly configured:
{
"compilerOptions": {
"strict": true,
"module": "ESNext",
"moduleResolution": "bundler"
}
}IDE Setup
VS Code
Install the ESLint extension and add to .vscode/settings.json:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}License
MIT
