@viteplay/plugin

import { defineConfig } from "vite" import componentExamples from "vite-plugin-component-examples"

Usage no npm install needed!

<script type="module">
  import viteplayPlugin from 'https://cdn.skypack.dev/@viteplay/plugin';
</script>

README

vite-plugin-component-examples

Shorthand version

import { defineConfig } from "vite"
import componentExamples from "vite-plugin-component-examples"

export default defineConfig({
  plugins: [
    componentExamples({
      // Path to extract components from to create dev pages for
      components: "./components/*/*.vue",
      // Path to extract component examples from to put on each dev page
      componentExamples: "./components/*/*.example.vue",
    }),
  ],
})

Then it will generate pages from the examples, you can import the pages like this:

import { pages } from "vite-plugin-component-examples/client"

assert.equal(pages, [
  {
    title: "Button",
    path: "/button",
    component: () => import("generated/pages/button.vue"),
  },
  {
    title: "Form",
    path: "/form",
    component: () => import("generated/pages/form.vue"),
  },
])

Longhand version

import { defineConfig } from "vite"
import componentExamples from "vite-plugin-component-examples"

export default defineConfig({
  plugins: [
    componentExamples({
      pages: [
        {
          title: "Button",
          examples: "./button/*.example.vue",
        },
        {
          title: "Form",
          examples: "./form/*.example.vue",
        },
      ],
    }),
  ],
})

Then it will generate pages from the examples, you can import the pages like this:

import { pages } from "vite-plugin-component-examples/client"

assert.equal(pages, [
  {
    title: "Button",
    path: "/button",
    component: () => import("generated/pages/button.vue"),
  },
  {
    title: "Form",
    path: "/form",
    component: () => import("generated/pages/form.vue"),
  },
])