相容性
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 | Nuxt 版本採用 semver 格式。版本可以透過 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
中的約束表。
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()
呼叫從上下文中檢索。