Nuxt Nation 大会即将到来。加入我们,时间为 11 月 12-13 日。

scalar
@scalar/nuxt

基于 OpenAPI/Swagger 文件,使用 Nuxt 渲染美观的 API 参考文档。

Scalar API 参考 Nuxt 模块

VersionDownloadsLicenseDiscord

此插件提供了一种简单的方法,可以使用 Nuxt 基于 OpenAPI/Swagger 文件渲染美观的 API 参考文档。

Screenshot of an API Reference

快速设置

使用一条命令将模块安装到您的 Nuxt 应用程序中

npx nuxi module add @scalar/nuxt

就是这样!您现在可以在您的 Nuxt 应用程序中使用 @scalar/nuxt ✨

配置

如果您使用的是 Nuxt 服务器路由,则只需在 `nuxt.config.ts` 中的 Nitro 配置中启用 OpenAPI 即可启用 Scalar。

export default defineNuxtConfig({
  modules: ['@scalar/nuxt'],
  nitro: {
    experimental: {
      openAPI: true,
    },
  },
})

如果您想添加自己的 OpenAPI 规范文件,可以使用以下最小配置。

export default defineNuxtConfig({
  modules: ['@scalar/nuxt'],
  scalar: {
    spec: {
      url: 'https://cdn.jsdelivr.net.cn/npm/@scalar/galaxy/dist/latest.yaml',
    },
  },
})

默认情况下,文档将托管在 /docs 下,但您可以轻松自定义它,这是一个更深入的配置示例。

export default defineNuxtConfig({
  modules: ['@scalar/nuxt'],
  scalar: {
    darkMode: true,
    hideModals: false,
    hideDownloadButton: false,
    metaData: {
      title: 'API Documentation by Scalar',
    },
    proxy: 'https://proxy.scalar.com',
    searchHotKey: 'k',
    showSidebar: true,
    pathRouting: {
      basePath: '/scalar',
    },
    spec: {
      url: 'https://cdn.jsdelivr.net.cn/npm/@scalar/galaxy/dist/latest.yaml',
    },
  },
})

对于多个参考,请传入一个配置对象的数组,这些对象扩展了基本配置。

export default defineNuxtConfig({
  modules: ['@scalar/nuxt'],
  scalar: {
    darkMode: true,
    metaData: {
      title: 'API Documentation by Scalar',
    },
    proxy: 'https://proxy.scalar.com',
    configurations: [
      {
        spec: {
          url: 'https://cdn.jsdelivr.net.cn/npm/@scalar/galaxy/dist/latest.yaml,
        },
        pathRouting: {
          basePath: '/yaml',
        },
      },
      {
        spec: {
          url: 'https://cdn.jsdelivr.net.cn/npm/@scalar/galaxy/dist/latest.json',
        },
        pathRouting: {
          basePath: '/json',
        },
      },
    ],
  },
})

对于主题配置,您可以将 theme 属性传递给配置对象。默认主题为 nuxt,但您也可以传递 default 来使用默认主题。

export default defineNuxtConfig({
  modules: ['@scalar/nuxt'],
  scalar: {
    theme: 'nuxt',
  },
})

故障排除

如果您遇到任何 **** not default export 错误,则可能是您正在使用 pnpm。此问题的临时解决方法是在我们解决导致包问题的原因之前启用 shamefully-hoist

为此,只需在您的项目根目录中创建一个 .npmrc 文件并将其填充为

shamefully-hoist=true