模块配置

View source
了解 Movk Nuxt 模块的完整配置选项,包括组件前缀和 API 系统配置

介绍

Movk Nuxt 使用 movk 作为配置键,在 nuxt.config.ts 中进行配置:

prefix

  • 类型: string
  • 默认值: 'M'

组件前缀,用于避免与其他组件库的命名冲突。

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    prefix: 'My' // 组件变为 MyAutoForm, MyDatePicker 等
  }
})

api

API 系统提供完整的请求封装和认证管理,通过 api 选项配置。

API 系统的完整使用方法请参考 useApiFetchuseApiAuth

基础配置

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    api: {
      // 是否启用 API 功能
      enabled: true,
      // 默认使用的端点名称
      defaultEndpoint: 'default',
      // 是否启用调试模式
      debug: false
    }
  }
})
enabled
boolean
是否启用 API 功能。默认 true
defaultEndpoint
string
默认使用的端点名称。默认 'default'
debug
boolean
是否启用调试模式,开启后会在控制台输出请求日志。默认 false

endpoints

支持配置多个 API 端点,每个端点可以有独立的配置:

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    api: {
      endpoints: {
        // 默认端点
        default: {
          baseURL: '/api'
        },
        // 管理端点
        admin: {
          baseURL: '/admin-api',
          auth: {
            tokenType: 'Bearer'
          }
        },
        // 第三方 API
        external: {
          baseURL: 'https://api.example.com',
          headers: {
            'X-API-Key': 'your-api-key'
          }
        }
      }
    }
  }
})

端点选项

baseURL
string required
端点的基础 URL。
alias
string
端点别名。
headers
Record<string, string>
该端点的默认请求头 仅服务端使用,不会暴露给客户端
auth
ApiAuthConfig
该端点的认证配置,会与全局配置合并。
toast
ApiToastConfig
该端点的 Toast 配置,会与全局配置合并。
success
ApiSuccessConfig
该端点的成功判断配置,会与全局配置合并。

auth

配置自动认证行为,与 nuxt-auth-utils 集成:

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    api: {
      auth: {
        // 启用认证
        enabled: true,
        // Token 来源
        tokenSource: 'session',
        // Session 中 token 的路径
        sessionTokenPath: 'custom',
        // Token 类型
        tokenType: 'Bearer',
        // 请求头名称
        headerName: 'Authorization',
        // 401 未授权处理配置
        unauthorized: {
          // 401 时跳转登录页
          redirect: false,
          loginPath: '/login',
          // 401 时清除 session
          clearSession: false
        }
      }
    }
  }
})

认证选项

enabled
boolean
是否启用认证。默认 false
tokenSource
'session' | 'custom'
Token 来源。'session' 从 nuxt-auth-utils 的 session 中获取(推荐),'custom' 使用自定义方式。默认 'session'
sessionTokenPath
string
Session 中 token 的路径。例如 'token' 对应 session.token'user.token' 对应 session.user.token。默认 'token'
tokenType
'Bearer' | 'Basic' | 'Custom'
Token 类型。默认 'Bearer'
customTokenType
string
自定义 Token 类型值,当 tokenType'Custom' 时使用。
headerName
string
请求头名称。默认 'Authorization'
unauthorized
ApiUnauthorizedConfig
401 未授权处理配置。

response

配置如何判断 API 响应是否成功:

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    api: {
      response: {
        // 成功状态码列表
        successCodes: [200, 0],
        // 状态码字段名
        codeKey: 'code',
        // 消息字段名
        messageKey: 'message',
        // 数据字段名
        dataKey: 'data'
      }
    }
  }
})

成功判断选项

successCodes
(number | string)[]
成功状态码列表,响应中的 code 值在此列表中视为成功。默认 [200, 0]
codeKey
string
响应中状态码的字段名。默认 'code'
messageKey
string
响应中消息的字段名。默认 'message'
dataKey
string
响应中数据的字段名。默认 'data'

toast

配置全局 Toast 提示行为:

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    api: {
      toast: {
        // 全局启用提示
        enabled: true,
        // 成功提示配置
        success: {
          show: true,
          color: 'success',
          icon: 'i-lucide-circle-check',
          duration: 3000
        },
        // 错误提示配置
        error: {
          show: true,
          color: 'error',
          icon: 'i-lucide-circle-x',
          duration: 3000
        }
      }
    }
  }
})

Toast 选项

enabled
boolean
是否全局启用提示。默认 true
success
ApiToastItemConfig
成功提示配置。
error
ApiToastItemConfig
错误提示配置。

配置优先级

配置按以下优先级合并(后者覆盖前者):

  1. Schema 默认值 - Zod Schema 定义的默认值
  2. 全局配置 - movk.api.authmovk.api.toastmovk.api.response
  3. 端点配置 - movk.api.endpoints[name].auth
  4. 请求级配置 - useApiFetchtoast 选项等
// 示例:请求级配置覆盖全局配置
const { data } = await useApiFetch('/users', {
  toast: {
    successMessage: '获取成功', // 覆盖全局配置
    error: false // 禁用错误提示
  }
})

环境变量

对于敏感配置(如 API 密钥),建议使用环境变量:

nuxt.config.ts
export default defineNuxtConfig({
  movk: {
    api: {
      endpoints: {
        external: {
          baseURL: process.env.EXTERNAL_API_URL,
          headers: {
            'X-API-Key': process.env.EXTERNAL_API_KEY
          }
        }
      }
    }
  }
})
.env
EXTERNAL_API_URL=https://api.example.com
EXTERNAL_API_KEY=your-api-key
不要将敏感信息(如 API 密钥、密码)直接写在配置文件中,始终使用环境变量。
Copyright © 2025 - 2026 YiXuan - MIT License