# @luban-ui/vite-plugin-vue

> > Vite plugin presets, for vue sites.

Latest version **1.2.3** (published 2024-12-16) · 0 weekly downloads

## Install

```sh
npm install @luban-ui/vite-plugin-vue
pnpm add @luban-ui/vite-plugin-vue
yarn add @luban-ui/vite-plugin-vue
bun add @luban-ui/vite-plugin-vue
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.3 |
| Published | 2024-12-16 |
| First published | 2023-12-26 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 17 |
| Unpacked size | 56.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | season.chen |

## Links

- npm: https://www.npmjs.com/package/@luban-ui/vite-plugin-vue
- Repository: https://github.com/luban-dev/vite-plugin-vue
- Homepage: https://github.com/ccqgithub/vite-plugin-vue
- Issues: https://github.com/luban-dev/vite-plugin-vue/issues
- npm.io page: https://npm.io/package/@luban-ui/vite-plugin-vue

## Dependencies (17)

- [sass](https://npm.io/package/sass.md) ^1.69.5
- [terser](https://npm.io/package/terser.md) ^5.26.0
- [autoprefixer](https://npm.io/package/autoprefixer.md) ^10.4.20
- [vite-svg-loader](https://npm.io/package/vite-svg-loader.md) ^5.1.0
- [@eslint/eslintrc](https://npm.io/package/@eslint/eslintrc.md) ^2.1.4
- [typed-css-modules](https://npm.io/package/typed-css-modules.md) ^0.8.1
- [@vitejs/plugin-vue](https://npm.io/package/@vitejs/plugin-vue.md) ^4.5.2
- [vite-plugin-mkcert](https://npm.io/package/vite-plugin-mkcert.md) ^1.17.1
- [@vitejs/plugin-legacy](https://npm.io/package/@vitejs/plugin-legacy.md) ^5.4.2
- [@vitejs/plugin-vue-jsx](https://npm.io/package/@vitejs/plugin-vue-jsx.md) ^3.1.0
- [@vitejs/plugin-basic-ssl](https://npm.io/package/@vitejs/plugin-basic-ssl.md) ^1.0.2
- [rollup-plugin-visualizer](https://npm.io/package/rollup-plugin-visualizer.md) ^5.11.0
- [@intlify/unplugin-vue-i18n](https://npm.io/package/@intlify/unplugin-vue-i18n.md) ^2.0.0
- [@luban-ui/vite-plugun-env-dts](https://npm.io/package/@luban-ui/vite-plugun-env-dts.md) ^1.0.0
- [@luban-ui/vite-plugun-sitemap](https://npm.io/package/@luban-ui/vite-plugun-sitemap.md) ^1.0.1
- [vite-plugin-circular-dependency](https://npm.io/package/vite-plugin-circular-dependency.md) ^0.2.1
- [@luban-ui/vite-plugun-css-modules-dts](https://npm.io/package/@luban-ui/vite-plugun-css-modules-dts.md) ^1.0.0

## Recent versions

- 1.2.3 (latest) — 2024-12-16
- 1.2.2 — 2024-08-20
- 1.2.1 — 2024-08-09
- 1.2.0 — 2024-08-07
- 1.1.1 — 2024-07-22
- 1.1.0 — 2023-12-27
- 1.0.5 — 2023-12-27
- 1.0.4 — 2023-12-27
- 1.0.3 — 2023-12-27
- 1.0.2 — 2023-12-27
- 1.0.1 — 2023-12-27
- 1.0.0 — 2023-12-26

## README

# vite plugin for vue sites

> Vite plugin presets, for vue sites.

## Install

```sh
npm i vite @luban-ui/vite-plugin-vue -D
```

## Create config file

```ts
// vite.config.ts
import * as path from 'node:path';
import { defineConfig } from 'vite';
import viteLubanPlugin from '@luban-ui/vite-plugin-vue';

export default defineConfig(() => {
  const root = __dirname;

  return {
    // default: process.cwd()
    root: process.cwd(),
    // to esbuild
    esTargets: [
      'es2015',
      'chrome87',
      'safari13',
      'firefox78',
      'edge88'
    ],
    // moder targets
    modernTargets: [
      'defaults',
      'chrome >= 87',
      'safari >= 13',
      'firefox >= 78',
      'edge >= 88'
    ],
    // legacy plugin
    legacyTargets: [
      'defaults',
      'chrome >= 87',
      'safari >= 13',
      'firefox >= 78',
      'edge >= 88',
      'android >= 7.1'
    ],

    // default: {root}/envs/
    envDir: path.resolve(root, './envs'),
    // default: /
    base: '/',
    server: {
      host: '0.0.0.0',
      port: 5175
    },
    plugins: [viteLubanPlugin({
      root
      // ...other options
    })],
    build: {
      rollupOptions: {
        input: {
          main: path.resolve(__dirname, 'index.html')
        }
      }
    }
  };
});
```

## Options

```ts
export interface PluginOption {
  root?: string;

  // @vitejs/plugin-vue
  // https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme
  vue?: {
    // default: true
    enable?: boolean;
  };

  // @vitejs/plugin-basic-ssl
  // https://github.com/vitejs/vite-plugin-basic-ssl/#readme
  ssl?: {
    // default: true
    enable?: boolean;
  };

  // vite-plugin-mkcert
  // https://github.com/liuweiGL/vite-plugin-mkcert/blob/main/README-zh_CN.md
  mkcert?: {
    enable?: boolean;
    options?: MkcertPluginOptions;
  };

  // vite-svg-loader
  // https://github.com/jpkleemans/vite-svg-loader#readme
  svg?: {
    // default: true
    enable?: boolean;
  };

  // @intlify/unplugin-vue-i18n/vite
  // https://github.com/intlify/bundle-tools/blob/main/packages/unplugin-vue-i18n/README.md
  i18n?: {
    // default: true
    enable?: boolean;
    options?: {
      // default: {root}/src/i18n/locales/**/*.json
      includes?: string | string[];
    };
  };

  // @vitejs/plugin-legacy
  // https://github.com/vitejs/vite/tree/main/packages/plugin-legacy
  // https://www.npmjs.com/package/vite-plugin-legacy-extends
  legacy?: {
    // default: true
    enable?: boolean;
    options?: {
      targets?: Targets;
      modernTargets?: Targets;
    };
  };

  // rollup-plugin-visualizer
  // https://github.com/btd/rollup-plugin-visualizer
  visualizer?: {
    // default: true
    enable?: boolean;
    options?: {
      // default: {root}/stats.html
      filename?: string;
    };
  };

  // vite-plugin-circular-dependency
  // https://github.com/threedayAAAAA/rollup-plugin-circular-dependency#readme
  circularDependency?: {
    // default: true
    enable?: boolean;
  };

  // @luban-ui/vite-plugun-css-modules-dts
  // https://github.com/luban-dev/vite-plugun-css-modules-dts
  cssModulesDts?: {
    // default: true
    enable?: boolean;
    options?: {
      // **/*.module.scss
      files: string[];
      namedExports: boolean;
    };
  };

  // @luban-ui/vite-plugun-env-dts
  // https://github.com/luban-dev/vite-plugun-env-dts
  envDts?: {
    // default: true
    enable?: boolean;
    options?: {
      filename?: string;
      name?: string;
    };
  };

  // @luban-ui/vite-plugun-sitemap
  // https://github.com/luban-dev/vite-plugun-sitemap
  sitemap?: {
    // default: false
    enable?: boolean;
    options?: {
      domains: string[];
      pages: {
        path: string;
        languages?: string[];
        defaultLanguage?: string;
        priority?: number;
      }[];
      languages: string[];
      defaultLanguage?: string;
      getLanguagePath?: (page: string, lang: string) => string;
      filename?: (domain: string) => string;
    };
  };

  split?: {
    // default: true
    enable?: boolean;
  };

  cdn?: {
    url?: string;
    assetsPattern?: RegExp;
  };
}
```

---
_Source: https://npm.io/package/@luban-ui/vite-plugin-vue · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
