Skip to content
Grok

Using Plugins

Available Plugins

Official Plugins

ปลั๊กอินคําอธิบาย
github.com favicon@vitejs/plugin-vueสําหรับ Vue 3 Single File Components
github.com favicon@vitejs/plugin-vue-jsxสําหรับ Vue 3 JSX
github.com favicon@vitejs/plugin-vue2-jsxสําหรับ Vue 2 JSX
github.com favicon@vitejs/plugin-reactสําหรับ React
github.com favicon@vitejs/plugin-react-swcสําหรับ React ด้วย SWC
github.com favicon@vitejs/plugin-legacyสําหรับรองรับ Legacy Browsers

Community Plugins

Vite Plugins ทั่วไป

Pluginsรายละเอียด
github.com faviconunplugin-unusedตรวจจับและรายงานไฟล์ที่ไม่ได้ใช้งานในโปรเจกต์
github.com faviconunocssCSS Engine แบบ Atomic ที่รวดเร็วและยืดหยุ่น คล้าย Tailwind แต่ไม่ต้อง PostCSS
unplugin.unjs.io faviconunplugin-unusedบีบอัดรูปภาพให้มีขนาดเล็กลงโดยอัตโนมัติ
github.com faviconvite-plugin-checkerตรวจสอบ Type และ Lint ในขณะ development โดยใช้ worker thread
utc.yuy1n.io faviconunplugin-utcช่วยแปลง UTC เป็น local time โดยอัตโนมัติในระหว่าง build time
github.com faviconvite-tsconfig-pathsรองรับการใช้งาน path aliases ที่กำหนดใน tsconfig.json
github.com faviconvite-plugin-image-optimizerบีบอัดรูปภาพอัตโนมัติระหว่างการ build เพื่อเพิ่มประสิทธิภาพของเว็บไซต์

Vue Plugins

Pluginsรายละเอียด
github.com faviconvite-plugin-vue-devtoolsเครื่องมือพัฒนา Vue ที่เพิ่มประสิทธิภาพในการ debug และวิเคราะห์แอพ Vue
unplugin.unjs.io faviconunplugin-vue-cssvarsช่วยจัดการตัวแปร CSS ใน Vue components โดยสร้าง CSS variables จาก script setup

Creating Plugins

ดูที่ vitejs.dev faviconVite Plugin API Documentation

bash
plugins/
├── dist/index.js         # ไฟล์ผลลัพธ์ที่ถูก compile แล้ว
├── src/
   └── index.ts         # Source code ของ plugin
├── package.json         # ไฟล์กำหนดค่า package
└── tsconfig.json       # ตั้งค่า TypeScript
├── src/                  # โค้ดต้นฉบับ
   └── my-plugin.ts
└── vite.config.ts        # ไฟล์กำหนดค่า plugin
ts
import type { Plugin } from "vite";

interface MyPluginOptions {
  message?: string;
  debug?: boolean;
}

export default function myPlugin(options: MyPluginOptions = {}): Plugin {
  return {
    name: "my-plugin",
    enforce: "pre",
    configResolved(config) {
      if (options.debug) {
        console.log("Config resolved:", config.mode);
      }
    },
    configureServer(server) {
      server.middlewares.use((req, res, next) => {
        next();
      });
    },
    transform(code, id) {
      if (id.endsWith(".js")) {
        return {
          code: `/* ${options.message || "Processed by my-plugin"} */\n${code}`,
          map: null,
        };
      }
    },
    closeBundle() {
      console.log("Build completed!");
    },
  };
}
ts
import myPlugin from "./plugins/src/my-plugin";

export default {
  plugins: [myPlugin({ message: "Hello", debug: true })],
};