@dsb-norge/eslint-config-dsb-vue3-ts

ESLint standard config for Vue.js version 3 projects with Typescript support
3,371
Install
npm install @dsb-norge/eslint-config-dsb-vue3-ts
Latest Version:3.3.0
Vue:3
License:ISC
Last Updated:Oct 20, 2026
Links: GitHub  ·  npm
Maintainer: rolvraen

eslint-config-dsb-vue3-ts

npm version GitHub license

Installation

The default export contains all default ESLint rules for Vue3 TypeScript , including the recommended ruleset for Vue, the opinionated recommended ruleset for TypeScript and the ones listed in the rules section .

Install the package with:

npm install --dev @dsb-norge/eslint-config-dsb-vue3-ts

Usage

Now add the config to youreslint.config.mjs file:

import dsbConfig from '@dsb-norge/eslint-config-dsb-vue3-ts'

export default [
  ...dsbConfig
]

Assumptions

This ESLint configuration comes with some fundamental assumptions:

  • eslint 9 and flat config
  • vue.js 3 and/or node environment
  • browser and/or node environment
  • vite
  • TypeScript

Despite some assumptions, you can easily overwrite, extend and unset rules and any other setting in your custom eslint config.

Migrate from version 2.x to 3.x (eslint 8 to eslint 9)

Package cleanup

  • If installed, remove packages that are no longer needed in local package.json:
npm uninstall -D @rushstack/eslint-patch @stylistic/eslint-plugin @vue/eslint-config-typescript eslint-plugin-vue eslint-plugin-vuejs-accessibility
  • The eslint library must be of version 9 or higher. If you are using eslint 8, you must upgrade to version 9 or higher.
npm install eslint@latest

package.json scripts

  • Update the scripts
 "scripts": {
    ...,
    "lint": "eslint",
    "lint:fix": "eslint --fix"
  }

Configuration

Configuration now lives in eslint.config.mjs instead of .eslintrc.js.

from:

// .eslintrc.js
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
  root: true,
  extends: [
    '@dsb-norge/dsb-vue3-ts'
  ],
  rules: {
    indent: [ 'error', 2, { SwitchCase: 1 } ]
  },
  parserOptions: {
    ecmaVersion: 'latest'
  }
}

to

// eslint.config.mjs
import dsbConfig from '@dsb-norge/eslint-config-dsb-vue3-ts'

export default [
  ...dsbConfig,
  {
    rules: {
      // your custom overrides here
    }
  }
]

With cypress config

Same as over, but adding cypress for only the cypress files. Note the spread operator since we are wrapping this in a separate object, this is different from what is described in the cypress documentation.

See eslint documentation for more information.

// eslint.config.mjs
import dsbConfig from '@dsb-norge/eslint-config-dsb-vue3-ts'
import pluginCypress from 'eslint-plugin-cypress/flat'


export default [
  ...dsbConfig,
  {
    name: 'Cypress',
    ...pluginCypress.configs.recommended,
    files: [
      '**/__tests__/*.{cy,spec}.{js,ts,jsx,tsx}',
      'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}',
      'cypress/support/**/*.{js,ts,jsx,tsx}'
    ],
    rules: {
      // your custom overrides for cypress here
    }
  },
  {
    rules: {
      // your custom overrides here
    }
  }
]

Related Packages

@tresinternet/eslint-config-vue3

Opinionated ESLint config for consistent, clean, auto-sorted code in TRES Vue3 a...

2,631
@lehoczky/eslint-config-vue

ESLint Config for Vue3 with TypeScript

2,595 0
@anoesj/eslint-config-vue-ts

Anoesj's ESLint config for Vue and Nuxt projects with TypeScript

1,603 0
@deviltea/eslint-config

DevilTea's opinionated ESLint flat config for JavaScript, TypeScript, and Vue.

21,263 0
eslint-config-light-vue3

开箱即用的 Eslint 配置

19,634

Version History

Version Released License
3.3.0 ISC
3.2.0 ISC
3.1.0 ISC
3.0.5 ISC
3.0.4 ISC
Pre-releases (9)
Version Released License
3.2.0-0 ISC
3.0.0-4 ISC
3.0.0-2 ISC
3.0.0-1 ISC
3.0.0-0 ISC