# unplugin-vue-named-export

> Named export for Vue SFC.

Latest version **0.10.2** (published 2026-10-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install unplugin-vue-named-export
pnpm add unplugin-vue-named-export
yarn add unplugin-vue-named-export
bun add unplugin-vue-named-export
```

## Health

**Score 65/100 (B)** — status: active.

Positive: esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads; no types; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.10.2 |
| Published | 2026-10-11 |
| First published | 2023-03-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Node | ^22.18.0 \|\| >=24.11.0 |
| Dependencies | 5 |
| Unpacked size | 19.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 22 |
| Author | Kevin Deng <sxzz@sxzz.moe> |
| Maintainers | userquin, antfu, sxzz, hannoeru |
| Keywords | unplugin, rollup, vite, esbuild, webpack |

## Links

- npm: https://www.npmjs.com/package/unplugin-vue-named-export
- Repository: https://github.com/unplugin/unplugin-vue-named-export
- Homepage: https://github.com/unplugin/unplugin-vue-named-export#readme
- Issues: https://github.com/unplugin/unplugin-vue-named-export/issues
- Funding: https://github.com/sponsors/sxzz
- npm.io page: https://npm.io/package/unplugin-vue-named-export

## Dependencies (5)

- [unplugin](https://npm.io/package/unplugin.md) ^3.4.0
- [yuku-parser](https://npm.io/package/yuku-parser.md) ^0.19.0
- [muggle-string](https://npm.io/package/muggle-string.md) ^0.4.1
- [rolldown-string](https://npm.io/package/rolldown-string.md) ^0.3.1
- [@vue/language-core](https://npm.io/package/@vue/language-core.md) ^3.3.13

## Alternatives

- [raw-loader](https://npm.io/package/raw-loader.md) — 4.3M weekly downloads
- [plop](https://npm.io/package/plop.md) — 1.4M weekly downloads
- [webpack-deadcode-plugin](https://npm.io/package/webpack-deadcode-plugin.md) — 80.3K weekly downloads
- [@storybook/preact-vite](https://npm.io/package/@storybook/preact-vite.md) — 54.2K weekly downloads
- [vite-plugin-transform](https://npm.io/package/vite-plugin-transform.md) — 2.4K weekly downloads

## Recent versions

- 0.10.2 (latest) — 2026-10-11
- 0.10.1 — 2026-09-16
- 0.10.0 — 2026-06-16
- 0.9.4 — 2026-03-27
- 0.9.3 — 2025-12-15
- 0.9.2 — 2025-11-22
- 0.9.1 — 2025-08-24
- 0.9.0 — 2025-07-18
- 0.8.1 — 2025-05-09
- 0.8.0 — 2025-05-08
- 0.7.3 — 2025-04-14
- 0.7.2 — 2025-03-05
- 0.7.1 — 2025-02-14
- 0.7.0 — 2025-01-31
- 0.6.0 — 2025-01-26
- … 11 more at https://npm.io/package/unplugin-vue-named-export/versions

## README

# unplugin-vue-named-export

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![Unit Test][unit-test-src]][unit-test-href]

Named export for Vue SFC.

## Installation

```bash
npm i -D unplugin-vue-named-export
```

<details>
<summary>Vite</summary><br>

```ts
// vite.config.ts
import VueNamedExport from 'unplugin-vue-named-export/vite'

export default defineConfig({
  plugins: [
    VueNamedExport({
      /* options */
    }),
  ],
})
```

<br></details>

<details>
<summary>Rollup</summary><br>

```ts
// rollup.config.js
import VueNamedExport from 'unplugin-vue-named-export/rollup'

export default {
  plugins: [
    VueNamedExport({
      /* options */
    }),
  ],
}
```

<br></details>

<details>
<summary>esbuild</summary><br>

```ts
// esbuild.config.js
import { build } from 'esbuild'

build({
  plugins: [
    require('unplugin-vue-named-export/esbuild')({
      /* options */
    }),
  ],
})
```

<br></details>

<details>
<summary>Webpack</summary><br>

```ts
// webpack.config.js
module.exports = {
  /* ... */
  plugins: [
    require('unplugin-vue-named-export/webpack')({
      /* options */
    }),
  ],
}
```

<br></details>

## Usage

Use pascal case named exports in Vue SFC.

```ts
import { MyCard } from './my-card.vue'
import { MyFooter } from './my_footer.vue'
import { MyComponent } from './MyComponent.vue'
```

### Options

```ts
type Options = {
  include?: string | RegExp | (string | RegExp)[]
  exclude?: string | RegExp | (string | RegExp)[]

  /**
   * Convert filename to export name
   * @default pascalCaseFn
   */
  resolveName?: (id: string) => string | Promise<string>
  /**
   * Whether to remove default export
   * @default false
   */
  removeDefault?: boolean
}
```

### Vue Language Tools (Volar)

For Vue Language Tools (Volar) < 2.0, please use `unplugin-vue-named-export@0.3.0`

Support only pascal case named export for Volar.

```jsonc
// tsconfig.json
{
  // ...
  "vueCompilerOptions": {
    "plugins": ["unplugin-vue-named-export/volar"],

    "namedExport": {
      // defaults to false
      "removeDefault": false,
    },
  },
}
```

## Sponsors

<p align="center">
  <a href="https://cdn.jsdelivr.net/gh/sxzz/sponsors/sponsors.svg">
    <img src='https://cdn.jsdelivr.net/gh/sxzz/sponsors/sponsors.svg'/>
  </a>
</p>

## License

[MIT](./LICENSE) License © 2023-PRESENT [Kevin Deng](https://github.com/sxzz)

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/unplugin-vue-named-export.svg
[npm-version-href]: https://npmjs.com/package/unplugin-vue-named-export
[npm-downloads-src]: https://img.shields.io/npm/dm/unplugin-vue-named-export
[npm-downloads-href]: https://www.npmcharts.com/compare/unplugin-vue-named-export?interval=30
[unit-test-src]: https://github.com/sxzz/unplugin-vue-named-export/actions/workflows/unit-test.yml/badge.svg
[unit-test-href]: https://github.com/sxzz/unplugin-vue-named-export/actions/workflows/unit-test.yml

---
_Source: https://npm.io/package/unplugin-vue-named-export · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
