Как настроить eslint и prettier с помощью nuxt 3?
Я установил эти зависимости Package.json:
{
"devDependencies": {
"@intlify/nuxt3": "^0.1.6",
"@nuxtjs/eslint-config": "^7.0.0",
"@nuxtjs/eslint-module": "^3.0.2",
"eslint": "^8.1.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-nuxt": "^3.0.0",
"eslint-plugin-vue": "^7.20.0",
"nuxt3": "latest",
"prettier": "2.4.1",
"sass": "^1.43.3",
"vite-plugin-eslint": "^1.3.0"
}
}
На .eslintrc.js
extends: [
'eslint:recommended',
'plugin:nuxt/recommended',
'prettier'
],
На nuxt.config.ts
import eslintPlugin from 'vite-plugin-eslint';
export default defineNuxtConfig({
...
vite: {
plugins: [eslintPlugin()]
},
buildModules: ['@intlify/nuxt3', '@nuxtjs/eslint-module',],
})
И ни один из этих вариантов не работает с nuxt 3.
4 ответа
Простая установка ESLint + Prettier + TypeScript + Nuxt 3 (или Bridge) будет выглядеть так:
yarn add --dev eslint prettier eslint-config-prettier eslint-plugin-prettier @nuxtjs/eslint-config-typescript
.eslintrc.js
module.exports = {
root: true,
extends: ['@nuxtjs/eslint-config-typescript', 'plugin:prettier/recommended'],
}
package.json
{
"scripts": {
"lint": "eslint --ext .ts,.js,.vue ."
}
}
Моя конфигурация довольно проста и основана на официальных репозиториях nuxt git.
// nuxt.config.ts
export default defineNuxtConfig({
modules: ["@nuxtjs/eslint-module"]
});
и
// .eslintrc
{
"extends": ["@nuxt/eslint-config"]
}
и
// package.json
{
"name": "nuxt-app",
"private": true,
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
},
"devDependencies": {
"@nuxt/eslint-config": "^0.1.1",
"@nuxtjs/eslint-module": "^4.0.2",
"@types/node": "^18",
"eslint": "^8.39.0",
"nuxt": "^3.4.3",
"prettier": "^2.8.8"
}
}
Я установил эту конфигурацию, и она сработала.
сначала установи eslint
npm add --dev eslint
затем установите Prettier
npm add --dev prettier eslint-config-prettier eslint-plugin-prettier
затем поддержка TypeScript
npm add --dev typescript @typescript-eslint/parser @nuxtjs/eslint-config-typescript
Конфигурация eslintrc:
// .eslintrc.json
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
} ,
extends: [
"@nuxtjs/eslint-config-typescript",
"plugin:prettier/recommended"
],
overrides: [],
parser: "vue-eslint-parser",
parserOptions: {
parser: "@typescript-eslint/parser",
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["vue", "@typescript-eslint"],
rules: {
"vue/multi-word-component-names": 0,
},
};
Вот конфигурация, которую я нашел здесь: https://github.com/nuxt/framework/discussions/2815#discussioncomment-2050408 .
// .eslintrc.json
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:vue/vue3-recommended",
"plugin:@typescript-eslint/recommended",
"@nuxtjs/eslint-config-typescript"
],
"parserOptions": {
"ecmaVersion": "latest",
"parser": "@typescript-eslint/parser",
"sourceType": "module"
},
"plugins": [
"vue",
"@typescript-eslint"
],
"rules": {}
}
Если вы действительно хотите использовать красивее (imo eslint уже выполняет эту работу, использование обоих может быть очень раздражающим для настройки), вы можете добавить библиотеку eslint-plugin-prettier, а затем добавить «plugin:prettier/recommended» в расширение eslint.
Не знаю, какую IDE вы используете, но если это vscode, я советую вам использовать линтинг при сохранении вместо того, чтобы полагаться на форматтеры (Volar, prettier, eslint-prettier). В основном потому, что это заставляет всех разработчиков иметь одинаковый формат и правила.