Совместимость

Исходники
Nuxt Kit предоставляет набор утилит, которые помогут вам проверить совместимость ваших модулей с различными версиями Nuxt.

Утилиты Nuxt Kit можно использовать в Nuxt 3, Nuxt 2 с Bridge и даже в Nuxt 2 без Bridge. Чтобы убедиться, что ваш модуль совместим со всеми версиями, вы можете использовать функции checkNuxtCompatibility, assertNuxtCompatibility и hasNuxtCompatibility. Они проверят, соответствует ли текущая версия Nuxt указанным вами ограничениям. Также вы можете использовать функции isNuxt2, isNuxt3 и getNuxtVersion для более детальных проверок.

checkNuxtCompatibility

Проверяет, соблюдены ли ограничения для текущей версии Nuxt. Если нет, возвращает массив сообщений. В версии Nuxt 2 также проверяет поддержку bridge.

Usage

import { defineNuxtModule, checkNuxtCompatibility } 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
    }
  }
})

Type

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

Параметры

constraints: Version and builder constraints to check against. It accepts the following properties:

PropertyTypeRequiredDescription
nuxtstringfalseNuxt version in semver format. Versions may be defined in Node.js way, for example: >=2.15.0 <3.0.0.
bridgeRecord<string, string | false>falseSpecifies version constraints or disables compatibility for specific Nuxt builders like vite, webpack, or rspack. Use false to disable.

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.

assertNuxtCompatibility

Подтверждает, что ограничения выполнены для текущей версии Nuxt. Если нет, выдает ошибку со списком проблем в виде строки.

Тип

// @errors: 2391
import type { Nuxt, NuxtCompatibility } from '@nuxt/schema'
// ---cut---
function assertNuxtCompatibility(constraints: NuxtCompatibility, nuxt?: Nuxt): Promise<true>;

Параметры

constraints: Version and builder constraints to check against. Refer to the constraints table in checkNuxtCompatibility for details.

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.

hasNuxtCompatibility

Проверяет, соблюдены ли ограничения для текущей версии Nuxt. Возвращает true, если все ограничения соблюдены, в противном случае возвращает false. В версии Nuxt 2 также проверяет поддержку bridge.

Usage

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
    }
  }
})

Type

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

Параметры

constraints: Version and builder constraints to check against. Refer to the constraints table in checkNuxtCompatibility for details.

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.

isNuxtMajorVersion

Check if current Nuxt instance is of specified major version

Usage

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

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

Тип

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

Параметры

major: Major version to check against.

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.

isNuxt3

Проверяет, является ли текущая версия Nuxt версией 3.x.

Use isNuxtMajorVersion(2, nuxt) instead. This may be removed in @nuxt/kit v5 or a future major version.

Тип

function isNuxt3(nuxt?: Nuxt): boolean;

Параметры

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.

isNuxt2

Checks if the current Nuxt version is 2.x.

Use isNuxtMajorVersion(2, nuxt) instead. This may be removed in @nuxt/kit v5 or a future major version.

Type

function isNuxt2(nuxt?: Nuxt): boolean;

Parameters

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.

getNuxtVersion

Возвращает текущую версию Nuxt.

Тип

function getNuxtVersion(nuxt?: Nuxt): string;

Параметры

nuxt: Nuxt instance. If not provided, it will be retrieved from the context via useNuxt() call.