Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.

nuxt/eslint-plugin-nuxt

Repository files navigation

Note

eslint-plugin-nuxt was designed for Nuxt 2 and will not receive active development. Since many rules are no longer relevant in Nuxt 3, we created a new nuxt plugin @nuxt/eslint-plugin for Nuxt 3 under the nuxt/eslint repository.


eslint-plugin-nuxt

Standard JS Circle CI npm version npm downloads

✨ ESLint plugin for Nuxt.js

💿 Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev
success Saved 1 new dependencies

Next, install eslint-plugin-nuxt:

$ npm install eslint-plugin-nuxt --save-dev
success Saved 1 new dependencies

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-nuxt globally.

🚀 Usage

Add nuxt to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

  1. Use our preset to extend recommended defaults:
{
  "extends": [
    "plugin:nuxt/recommended"
  ]
}
  1. Or specify individual rules manually:
{
    "plugins": [
        "nuxt"
    ],
    "rules": {
        "nuxt/rule-name": 2
    }
}

⚙️ Configs

This plugin provides four predefined configs:

  • plugin:nuxt/base - Settings and rules to enable correct ESLint parsing
  • plugin:nuxt/recommended - Above, plus rules to enforce subjective community defaults to ensure consistency

💡 Rules

Base Rules

{
  "extends": "plugin:nuxt/base"
}
Rule ID Description
nuxt/no-env-in-context Disallow context.isServer/context.isClient in asyncData/fetch/nuxtServerInit
nuxt/no-env-in-hooks Disallow process.server/process.client in client only Vue lifecycle hooks like: mounted, beforeMount, updated...
nuxt/no-globals-in-created Disallow window/document in created/beforeCreate
nuxt/no-this-in-fetch-data Disallow this in asyncData/fetch
nuxt/no-cjs-in-config Disallow require/modules.exports/exports in nuxt.config.js

Recommended Rules

Include all the below rules, as well as all priority rules in above categories, with:

{
  "extends": "plugin:nuxt/recommended"
}
Rule ID Description
nuxt/no-timing-in-fetch-data Disallow setTimeout/setInterval in asyncData/fetch

Other Rules

Rule ID Description
nuxt/require-func-head Enforce head property in component to be a function.