> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/nuxt/nuxt/llms.txt
> Use this file to discover all available pages before exploring further.

# Compatibility

> Compatibility utilities to help you check Nuxt version compatibility

# Compatibility

Nuxt Kit provides a set of utilities to help you check the compatibility of your modules with different Nuxt versions.

Nuxt Kit utilities can be used in Nuxt 3, Nuxt 2 with Bridge and even Nuxt 2 without Bridge. To make sure your module is compatible with all versions, you can use the compatibility functions.

## `checkNuxtCompatibility`

Checks if constraints are met for the current Nuxt version. If not, returns an array of messages. Nuxt 2 version also checks for `bridge` support.

### Type

```ts theme={null}
function checkNuxtCompatibility(
  constraints: NuxtCompatibility,
  nuxt?: Nuxt
): Promise<NuxtCompatibilityIssues>
```

### Parameters

**`constraints`**: Version and builder constraints to check against.

| Property | Type                              | Required | Description                                                                                                                                     |
| -------- | --------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `nuxt`   | `string`                          | `false`  | Nuxt version in semver format. Versions may be defined in Node.js way, for example: `>=2.15.0 <3.0.0`.                                          |
| `bridge` | `Record<string, string \| false>` | `false`  | Specifies 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.

### Usage

```ts theme={null}
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())
    }
  },
})
```

## `assertNuxtCompatibility`

Asserts that constraints are met for the current Nuxt version. If not, throws an error with the list of issues as string.

### Type

```ts theme={null}
function assertNuxtCompatibility(
  constraints: NuxtCompatibility,
  nuxt?: Nuxt
): Promise<true>
```

### Parameters

**`constraints`**: Version and builder constraints to check against. Same as `checkNuxtCompatibility`.

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

### Usage

```ts theme={null}
import { assertNuxtCompatibility, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  async setup(_options, nuxt) {
    await assertNuxtCompatibility({ nuxt: '^3.0.0' }, nuxt)
  },
})
```

## `hasNuxtCompatibility`

Checks if constraints are met for the current Nuxt version. Return `true` if all constraints are met, otherwise returns `false`. Nuxt 2 version also checks for `bridge` support.

### Type

```ts theme={null}
function hasNuxtCompatibility(
  constraints: NuxtCompatibility,
  nuxt?: Nuxt
): Promise<boolean>
```

### Parameters

**`constraints`**: Version and builder constraints to check against. Same as `checkNuxtCompatibility`.

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

### Usage

```ts theme={null}
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
    }
  },
})
```

## `isNuxtMajorVersion`

Check if current Nuxt instance is of specified major version.

### Type

```ts theme={null}
function isNuxtMajorVersion(major: number, nuxt?: Nuxt): boolean
```

### Parameters

**`major`**: Major version to check against.

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

### Usage

```ts theme={null}
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
    }
  },
})
```

## `isNuxt3`

Checks if the current Nuxt version is 3.x.

**Note:** Use `isNuxtMajorVersion(3, nuxt)` instead. This may be removed in @nuxt/kit v5 or a future major version.

### Type

```ts theme={null}
function isNuxt3(nuxt?: Nuxt): boolean
```

### Parameters

**`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.

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

### Type

```ts theme={null}
function isNuxt2(nuxt?: Nuxt): boolean
```

### Parameters

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

## `getNuxtVersion`

Returns the current Nuxt version.

### Type

```ts theme={null}
function getNuxtVersion(nuxt?: Nuxt): string
```

### Parameters

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

### Usage

```ts theme={null}
import { defineNuxtModule, getNuxtVersion } from '@nuxt/kit'

export default defineNuxtModule({
  setup() {
    const version = getNuxtVersion()
    console.log('Nuxt version:', version)
  },
})
```

## Source

[View source on GitHub](https://github.com/nuxt/nuxt/blob/main/packages/kit/src/compatibility.ts)
