Nuxt.js代码风格配置

因为 Nuxt 官方有自带的 Nuxt ESLint 模块,该模块使用扁平化配置,不再使用 extends,使每个eslint配置都独立可控,故此处不使用传统的代码风格配置。

正文开始:

第一步

使用 npx nuxi module add eslint 命令快速添加 @nuxt/eslint 模块到项目中,运行此命令之后会自动生成 eslint.config.mjs 配置文件并且会自动在 nuxt.config.ts 文件中的 modules 加入 '@nuxt/eslint'。

如果你使用的是TypeScript,则需要单独进行安装,此处我选择使用npm: npm i -D typescript

第二步

完成以上步骤之后,可以在项目根目录下看到一个名为 eslint.config.mjs 的配置文件,然后就可以进行相应的扁平化配置。

扁平化配置的说明如下:

js 复制代码
// @ts-check
import withNuxt from './.nuxt/eslint.config.mjs';

export default withNuxt({
    // 配置名称,通常用于标识此 ESLint 配置
    name: 'my-eslint-config', // 示例:自定义名称

    // 指定要被 ESLint 处理的文件,可以是文件名或路径的数组
    files: ['src/**/*.js', 'src/**/*.vue'], // 示例:处理 src 目录下的所有 JS 和 Vue 文件

    // 忽略的文件或目录,不会被 ESLint 检查
    ignores: ['.nuxt/', 'node_modules/'], // 示例:忽略 .nuxt 目录和 node_modules 目录

    // 语言类型,通常为 'javascript'、'typescript' 或 'vue'
    language: 'javascript', // 示例:使用 JavaScript

    // 语言选项,允许您为特定语言提供额外配置
    languageOptions: {
        ecmaVersion: 2021, // 示例:指定 ECMAScript 版本
        sourceType: 'module', // 示例:使用模块化
    },

    // Linter 选项,可以配置 ESLint 的行为
    linterOptions: {
        reportUnusedDisableDirectives: true, // 示例:报告未使用的禁用指令
    },

    // 处理器,通常用于处理特定文件类型的解析器
    processor: {
        vue: 'vue-eslint-parser', // 示例:使用 Vue 解析器
    },

    // 设置,供插件和规则使用的全局设置
    settings: {
        react: {
            version: 'detect', // 示例:自动检测 React 版本
        },
    },

    // 插件数组,ESLint 支持的插件,可以添加额外的 ESLint 功能
    plugins: {
        'simple-import-sort': simpleImportSort, // 示例:添加简单导入排序插件
    },

    // 规则配置,可以指定每条规则的错误级别
    rules: {
        'prettier/prettier': 'error', // 示例:启用 Prettier 规则并设置为错误级别
        'simple-import-sort/imports': 'error', // 示例:启用简单导入排序规则并设置为错误级别
    },
});

如果你只需要简单配置一项的话,我们可以这么写:

js 复制代码
// @ts-check
import withNuxt from './.nuxt/eslint.config.mjs';

export default withNuxt({
    name: '',
    files: [],
    ignores: [],
    language: '',
    languageOptions: {},
    linterOptions: {},
    processor: {},
    settings: {},
    plugins: {},
    rules: {},
});

如果你需要配置多项的话,我们可以这么写:

js 复制代码
// @ts-check
import withNuxt from './.nuxt/eslint.config.mjs';
import customConfig from 'customConfig'

export default withNuxt([
    customConfig, // 此处为自定义配置或者依赖库提供的eslint配置
    {
        name: '',
        files: [],
        ignores: [],
        language: '',
        languageOptions: {},
        linterOptions: {},
        processor: {},
        settings: {},
        plugins: {},
        rules: {},
    },
    {
        name: '',
        files: [],
        ignores: [],
        language: '',
        languageOptions: {},
        linterOptions: {},
        processor: {},
        settings: {},
        plugins: {},
        rules: {},
    }
]);

基本内容就如上所述,具体细节可以参照 NuxtEslint官方文档 进一步了解。

下面我提供一份 Nuxtjs 的简单配置给大家参考:

该配置主要加入了导入语句排序和 prettier 配置校验

js 复制代码
// @ts-check
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import simpleImportSort from 'eslint-plugin-simple-import-sort';

import withNuxt from './.nuxt/eslint.config.mjs';

export default withNuxt([
    eslintPluginPrettierRecommended,
    {
        plugins: {
            'simple-import-sort': simpleImportSort,
        },
        rules: {
            'simple-import-sort/imports': 'error',
            'simple-import-sort/exports': 'error',
        },
    },
]);
相关推荐
JIngJaneIL10 小时前
基于java + vue校园快递物流管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js
OpenTiny社区11 小时前
2025OpenTiny星光ShowTime!年度贡献者征集启动!
前端·vue.js·低代码
狗哥哥12 小时前
从零到一:打造企业级 Vue 3 高性能表格组件的设计哲学与实践
前端·vue.js·架构
计算机毕设VX:Fegn089512 小时前
计算机毕业设计|基于springboot + vue图书借阅管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
褪色的笔记簿12 小时前
在 Vue 项目里管理弹窗组件:用 ref 还是用 props?
前端·vue.js
一只小阿乐13 小时前
前端vue3 web端中实现拖拽功能实现列表排序
前端·vue.js·elementui·vue3·前端拖拽
AAA阿giao13 小时前
从“操纵绳子“到“指挥木偶“:Vue3 Composition API 如何彻底改变前端开发范式
开发语言·前端·javascript·vue.js·前端框架·vue3·compositionapi
专注前端30年13 小时前
在日常开发项目中Vue与React应该如何选择?
前端·vue.js·react.js
进击的野人13 小时前
Vue 组件与原型链:VueComponent 与 Vue 的关系解析
前端·vue.js·面试
馬致远13 小时前
Vue todoList案例 优化之本地存储
前端·javascript·vue.js