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

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

Утилиты Nuxt Kit работают в Nuxt 3, в Nuxt 2 с Bridge и в Nuxt 2 без Bridge. Чтобы убедиться, что модуль подходит под нужные версии, используйте checkNuxtCompatibility, assertNuxtCompatibility и hasNuxtCompatibility — они сверяют текущую версию Nuxt с заданными ограничениями. Для точечных проверок подойдут isNuxt2, isNuxt3, isNuxtMajorVersion и 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:\n' + issues.toString())
    } else {
      // продолжить, если проблем нет
    }
  },
})

Тип

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

Параметры

constraints: ограничения по версии и сборщику. Свойства:

СвойствоТипОбязательноОписание
nuxtstringfalseВерсия Nuxt в формате semver (как в Node.js), например >=2.15.0 <3.0.0.
bridgeRecord<string, string | false>falseОграничения для сборщиков (vite, webpack, rspack) или false, чтобы отключить проверку.

nuxt: экземпляр Nuxt. Если не передан, берётся из контекста через useNuxt().

assertNuxtCompatibility

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

Тип

// @errors: 2391
import type { Nuxt, NuxtCompatibility } from '@nuxt/schema'
// ---cut---
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) {
      // действия при совместимости
    } 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)) {
      // логика для Nuxt 3
    } else {
      // логика для других версий
    }
  },
})

Тип

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

Параметры

major: мажорная версия для проверки.

nuxt: экземпляр Nuxt. Если не передан, берётся из контекста через useNuxt().

isNuxt3

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

Предпочтительнее isNuxtMajorVersion(3, 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().