April 16, 2024 ยท Nuxt 3
Getting started with ESLint and Prettier for automatic code linting and formatting.
๐ Update (April 2024): This tutorial now uses the @nuxt/eslint
module.
In this post, we'll introduce ESLint and Prettier for automatic code style formatting in your Nuxt 3 project.
By using these tools together, we can spend more of our development time on our actual code, instead of nitpicking a file's indenting, casing and bracket placement.
Install the following dependencies:
# ESLint
yarn add --dev @nuxt/eslint eslint typescript
# Prettier
yarn add --dev eslint-plugin-prettier eslint-config-prettier prettier
Add the @nuxt/eslint
module to your Nuxt configuration:
// nuxt.config.ts
export default defineNuxtConfig({
devtools: { enabled: true },
modules: [
// ...
"@nuxt/eslint",
// ...
],
});
Run yarn dev
to generate an initial ESLint configuration file (eslint.config.mjs
), which will look like this:
// eslint.config.mjs
import withNuxt from "./.nuxt/eslint.config.mjs";
export default withNuxt();
If you already have a flat configuration file for ESLint that you would like to use, it can be passed as an argument to
withNuxt()
. You can explore more configuration options here: https://eslint.nuxt.com/packages/module
Add the following scripts to your package.json
file:
// package.json
{
"scripts": {
// ...
"lint": "yarn lint:eslint && yarn lint:prettier",
"lint:eslint": "eslint .",
"lint:prettier": "prettier . --check",
"lintfix": "eslint . --fix && prettier --write --list-different ."
// ...
}
}
To check for errors, use yarn lint
. This won't effect any changes, and may be useful in a code review or CI pipeline.
$ yarn lint
>>> yarn run v1.22.5
>>> $ yarn lint:eslint && yarn lint:prettier
>>> $ eslint .
>>> $ prettier . --check
>>> Checking formatting...
>>> [warn] app.vue
>>> [warn] Code style issues found in the above file. Run Prettier to fix.
>>> error Command failed with exit code 1.
>>> info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
>>> error Command failed with exit code 1.
>>> info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
To fix errors, use yarn lintfix
. This will save any formatting changes.
$ yarn lintfix
>>> yarn run v1.22.5
>>> $ prettier --write --list-different . && eslint . --fix
>>> app.vue
>>> Done in 2.59s.
After using yarn lintfix
, invoking yarn lint
should be successful.
$ yarn lint
>>> yarn run v1.22.5
>>> $ yarn lint:eslint && yarn lint:prettier
>>> $ eslint .
>>> $ prettier . --check
>>> Checking formatting...
>>> All matched files use Prettier code style!
>>> Done in 3.07s.
All done!
You can hopefully now avoid the nitpicking arguments ๐
Hey, guys! Thank you for reading. I hope that you enjoyed this.
Keep up to date with me:
Resources