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 for Nuxt.js
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.
Add nuxt
to the plugins section of your .eslintrc
configuration file. You can omit the eslint-plugin-
prefix:
- Use our preset to extend recommended defaults:
{
"extends": [
"plugin:nuxt/recommended"
]
}
- Or specify individual rules manually:
{
"plugins": [
"nuxt"
],
"rules": {
"nuxt/rule-name": 2
}
}
This plugin provides four predefined configs:
plugin:nuxt/base
- Settings and rules to enable correct ESLint parsingplugin:nuxt/recommended
- Above, plus rules to enforce subjective community defaults to ensure consistency
{
"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 |
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 |
Rule ID | Description | |
---|---|---|
nuxt/require-func-head | Enforce head property in component to be a function. |