Совместимость
Утилиты 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: ограничения по версии и сборщику. Свойства:
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
nuxt | string | false | Версия Nuxt в формате semver (как в Node.js), например >=2.15.0 <3.0.0. |
bridge | Record<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().