@nuxt/eslint-config

Nuxt 3 项目的共享 ESLint 配置。默认情况下不带任何观点,但可自定义。

Nuxt 3 项目的共享 ESLint 配置。默认情况下不带任何观点,但可自定义。

我们建议直接使用 ESLint 模块,它将在此配置的基础上提供项目感知的 ESLint 配置和 Nuxt DevTools 集成。
GitHub 上的源代码

配置格式

此包提供两种不同的 ESLint 配置

扁平配置格式

扁平配置格式是 ESLint 的未来,旨在更加灵活且项目感知。条目 @nuxt/eslint-config/flat 提供了一个工厂函数,用于为 Nuxt 3 项目创建项目感知的 ESLint 配置。它默认情况下不带任何观点,但可以通过向工厂函数传递选项进行自定义。由 @nuxt/eslint 模块用于生成项目感知的 ESLint 配置。

  1. 在你的 devDependencies 中安装此包和 eslint
yarn add --dev @nuxt/eslint-config eslint
  1. @nuxt/eslint-config/flat 条目在你的 eslint.config.mjs 中导入配置工厂函数
eslint.config.mjs
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'

export default createConfigForNuxt({
  // options here
})

你可能还想在你的 package.json 中添加一个脚本条目

package.json
{
  "scripts": {
    "lint": "eslint ."
  }
}

自定义配置

请注意,createConfigForNuxt() 返回一个可链式调用的 FlatConfigComposer 实例,来自 eslint-flat-config-utils,它允许你轻松地操作 ESLint 扁平配置。如果你想与其他配置结合,可以使用 .append() 方法

eslint.config.mjs
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'

export default createConfigForNuxt({
  // options here
})
  .prepend(
    // ...Prepend some flat configs in front
  )
  // Override some rules in a specific config, based on their name
  .override('nuxt/typescript', {
    rules: {
      // ...Override rules, for example:
      '@typescript-eslint/ban-types': 'off'
    }
  })
  // ...you can chain more operations as needed

FlatConfigComposer 也是一个 Promise 对象,你可以使用 await 获取最终的配置对象。

模块作者

此配置还为模块/库作者提供规则。你可以通过将 features.tooling 选项设置为 true 来启用它们

此功能处于实验阶段,将来可能会发生变化。
eslint.config.mjs
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'

export default createConfigForNuxt({
  features: {
    tooling: true
  }
})

这将启用使用 unicornregexpjsdoc 插件的规则,以确保你的模块遵循最佳实践。

你还可以通过提供一个对象,其中规则名称设置为 false 来单独关闭它们

eslint.config.mjs
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'

export default createConfigForNuxt({
  features: {
    tooling: {
      regexp: false,
    }
  }
})

旧版配置格式

旧版配置为 ESLint 配置 TypeScript 和 Vue 集成。它不带任何观点且是静态的,不包含样式规则或项目感知设置。

  1. 在你的 devDependencies 中安装此包和 eslint
yarn add --dev @nuxt/eslint-config eslint
  1. 通过创建一个 .eslintrc.cjs 来扩展默认的 Nuxt 配置
.eslintrc.cjs
module.exports = {
  root: true,
  extends: ["@nuxt/eslint-config"],
};

你可能还想在你的 package.json 中添加一个脚本条目

package.json
{
  "scripts": {
    "lint": "eslint ."
  }
}

ESLint 样式

ESLint 模块 类似,你可以在 features 模块选项中将 stylistic 设置为 true 来选择加入。

eslint.config.mjs
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'

export default createConfigForNuxt({
  features: {
    stylistic: true // <---
  }
})

ESLint 样式文档 中了解有关所有可用选项的更多信息。