兼容性

源文件
Nuxt Kit 提供了一套实用工具,可帮助您检查模块与不同 Nuxt 版本的兼容性。

Nuxt Kit 实用工具可在 Nuxt 3、带有 Bridge 的 Nuxt 2 甚至不带 Bridge 的 Nuxt 2 中使用。为确保您的模块与所有版本兼容,您可以使用 checkNuxtCompatibilityassertNuxtCompatibilityhasNuxtCompatibility 函数。它们将检查当前 Nuxt 版本是否满足您提供的约束。此外,您还可以使用 isNuxt2isNuxt3getNuxtVersion 函数进行更精细的检查。

checkNuxtCompatibility

检查当前 Nuxt 版本是否满足约束。如果不满足,则返回消息数组。Nuxt 2 版本还会检查 bridge 支持。

使用

import { checkNuxtCompatibility, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  async setup (_options, nuxt) {
    const issues = await checkNuxtCompatibility({ nuxt: '^2.16.0' }, nuxt)
    if (issues.length) {
      console.warn('Nuxt compatibility issues found:\n' + issues.toString())
    } else {
      // do something
    }
  },
})

类型

function checkNuxtCompatibility (constraints: NuxtCompatibility, nuxt?: Nuxt): Promise<NuxtCompatibilityIssues>

参数

constraints:要检查的版本和构建器约束。它接受以下属性

属性类型必需描述
nuxtstringfalseNuxt 版本采用 semver 格式。版本可以通过 Node.js 方式定义,例如:>=2.15.0 <3.0.0
bridgeRecord<string, string | false>false指定版本约束或禁用对特定 Nuxt 构建器(如 vitewebpackrspack)的兼容性。使用 false 禁用。

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。

assertNuxtCompatibility

断言当前 Nuxt 版本满足约束。如果不满足,则抛出带有问题列表的错误字符串。

类型

function assertNuxtCompatibility (constraints: NuxtCompatibility, nuxt?: Nuxt): Promise<true>

参数

constraints:要检查的版本和构建器约束。有关详细信息,请参阅 checkNuxtCompatibility 中的约束表

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。

hasNuxtCompatibility

检查当前 Nuxt 版本是否满足约束。如果所有约束都满足,则返回 true,否则返回 false。Nuxt 2 版本还会检查 bridge 支持。

使用

import { defineNuxtModule, hasNuxtCompatibility } from '@nuxt/kit'

export default defineNuxtModule({
  async setup (_options, nuxt) {
    const usingNewPostcss = await hasNuxtCompatibility({ nuxt: '^2.16.0' }, nuxt)
    if (usingNewPostcss) {
      // do something
    } else {
      // do something else
    }
  },
})

类型

function hasNuxtCompatibility (constraints: NuxtCompatibility, nuxt?: Nuxt): Promise<boolean>

参数

constraints:要检查的版本和构建器约束。有关详细信息,请参阅 checkNuxtCompatibility 中的约束表

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。

isNuxtMajorVersion

检查当前 Nuxt 实例是否为指定主要版本

使用

import { defineNuxtModule, isNuxtMajorVersion } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    if (isNuxtMajorVersion(3)) {
      // do something for Nuxt 3
    } else {
      // do something else for other versions
    }
  },
})

类型

function isNuxtMajorVersion (major: number, nuxt?: Nuxt): boolean

参数

major:要检查的主要版本。

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。

isNuxt3

检查当前 Nuxt 版本是否为 3.x。

请改用 isNuxtMajorVersion(2, nuxt)。此功能可能会在 @nuxt/kit v5 或未来的主要版本中移除。

类型

function isNuxt3 (nuxt?: Nuxt): boolean

参数

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。

isNuxt2

检查当前 Nuxt 版本是否为 2.x。

请改用 isNuxtMajorVersion(2, nuxt)。此功能可能会在 @nuxt/kit v5 或未来的主要版本中移除。

类型

function isNuxt2 (nuxt?: Nuxt): boolean

参数

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。

getNuxtVersion

返回当前 Nuxt 版本。

类型

function getNuxtVersion (nuxt?: Nuxt): string

参数

nuxt:Nuxt 实例。如果未提供,则将通过 useNuxt() 调用从上下文中检索。