相容性

原始檔
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() 呼叫從上下文中檢索。