# ivyforms/0.3/frontend/vite.config.ts

The Innovative Form Builder – IvyForms, version 0.3. 72 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/0.3/code/frontend/vite.config.ts
- Raw: https://pluginprobe.com/plugins/ivyforms/0.3/raw/frontend/vite.config.ts
- Modified: 2025-08-20T10:20:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/0.3/code/frontend/vite.config.ts#L10-L20`.

```typescript
import { defineConfig } from 'vite';
import { fileURLToPath, URL } from 'node:url'
import vue from '@vitejs/plugin-vue';
import VueDevTools from 'vite-plugin-vue-devtools'
import Components from 'unplugin-vue-components/vite'
import AutoImport from 'unplugin-auto-import/vite'
import svgLoader from 'vite-svg-loader'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { UnpluginVueComponentsResolver, UnpluginDirectivesResolver, UnpluginModulesResolver } from 'maz-ui/resolvers'

export default defineConfig( {
  plugins: [
      vue(),
      VueDevTools(),
      svgLoader(),
      Components({
        dirs: ['src'],
        dts: 'src/components.d.ts',
        resolvers: [
            ElementPlusResolver(),
            UnpluginVueComponentsResolver(),
            UnpluginDirectivesResolver(),
            UnpluginModulesResolver(),
        ],
      }),
      AutoImport({
          imports: ['vue', 'pinia'],
          dirs: ['src/utils', 'src/types', 'src/stores', 'src/composables', 'src/constants'],
          dts: 'src/auto-imports.d.ts',
          resolvers: [ElementPlusResolver()],
          vueTemplate: true,
          eslintrc: {
              enabled: true,
          },
      }),
  ],
  server: {
    port: 5173, // Ensure this matches the port in the PHP file
    strictPort: true, 
    cors: true,
  },
  build: {
    rollupOptions: {
        input: {
            admin: fileURLToPath(new URL('./src/assets/js/admin/admin.ts', import.meta.url)),
            public: fileURLToPath(new URL('./src/assets/js/public/public.ts', import.meta.url)),
        },
        output: {
            chunkFileNames: 'chunks/[name]-[hash].js',
            entryFileNames: '[name].js',
            assetFileNames: '[name].[ext]',
        },
    },
  },
  resolve: {
    alias: {
        vue: 'vue/dist/vue.esm-bundler.js',
        '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
  css: {
    preprocessorOptions: {
        scss: {
            api: 'modern-compiler',  // or "modern", "legacy"
            additionalData: ` 
                @use '@/assets/scss/main' as *;
            `,
        },
    },
  },
});

```
