Nuxt Kit 工具可以在 Nuxt 3、带有 Bridge 的 Nuxt 2 甚至没有 Bridge 的 Nuxt 2 中使用。为确保您的模块与所有版本兼容,您可以使用 checkNuxtCompatibility、assertNuxtCompatibility 和 hasNuxtCompatibility 函数。它们将检查当前 Nuxt 版本是否满足您提供的约束。此外,您还可以使用 isNuxt2、isNuxt3 和 getNuxtVersion 函数进行更细粒度的检查。
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: 要检查的版本和构建器约束。它接受以下属性
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
nuxt | string | false | 以 semver 格式表示的 Nuxt 版本。版本可以以 Node.js 的方式定义,例如:>=2.15.0 <3.0.0。 |
bridge | Record<string, string | false> | false | 指定版本约束或禁用对特定 Nuxt 构建器(如 vite、webpack 或 rspack)的兼容性。使用 false 进行禁用。 |
nuxt: Nuxt 实例。如果未提供,它将通过 useNuxt() 调用从上下文中检索。
assertNuxtCompatibility断言当前 Nuxt 版本满足约束条件。如果不满足,则抛出一个包含问题列表的字符串错误。
function assertNuxtCompatibility (constraints: NuxtCompatibility, nuxt?: Nuxt): Promise<true>
constraints: 要检查的版本和构建器约束。有关详细信息,请参阅 checkNuxtCompatibility 中的constraints表。
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 中的constraints表。
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() 调用从上下文中检索。