Skip to content

vitejs/vite-plugin-vue2-jsx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f44adfd · May 31, 2024
Jul 8, 2022
Jul 8, 2022
Aug 8, 2022
Jul 8, 2022
Jan 4, 2021
May 31, 2024
May 13, 2022
Dec 28, 2023
Nov 28, 2023
Jul 8, 2022
Jul 8, 2022

Repository files navigation

@vitejs/plugin-vue2-jsx npm

Caution

Vue 2 has reached EOL, and this project is no longer actively maintained.


Provides Vue 2 JSX & TSX support with HMR.

// vite.config.js
import vueJsx from '@vitejs/plugin-vue2-jsx'

export default {
  plugins: [
    vueJsx({
      // options are passed on to @vue/babel-preset-jsx
    })
  ]
}

Options

include

Type: (string | RegExp)[] | string | RegExp | null

Default: /\.[jt]sx$/

A picomatch pattern, or array of patterns, which specifies the files the plugin should operate on.

exclude

Type: (string | RegExp)[] | string | RegExp | null

Default: undefined

A picomatch pattern, or array of patterns, which specifies the files to be ignored by the plugin.

See @vue/babel-preset-jsx for other options.

HMR Detection

This plugin supports HMR of Vue JSX components. The detection requirements are:

  • The component must be exported.
  • The component must be declared by calling defineComponent via a root-level statement, either variable declaration or export declaration.

Supported patterns

import { defineComponent } from 'vue'

// named exports w/ variable declaration: ok
export const Foo = defineComponent({})

// named exports referencing variable declaration: ok
const Bar = defineComponent({ render() { return <div>Test</div> }})
export { Bar }

// default export call: ok
export default defineComponent({ render() { return <div>Test</div> }})

// default export referencing variable declaration: ok
const Baz = defineComponent({ render() { return <div>Test</div> }})
export default Baz

Non-supported patterns

// not using `defineComponent` call
export const Bar = { ... }

// not exported
const Foo = defineComponent(...)

Unfinished Features

  • SSR support
  • Share the same HMR runtime with @vitejs/plugin-vue2