AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Vite Syntax Build

skill-impertio-studio-vite-claude-skill-package-vite-syntax-build · by Impertio-Studio

>

No reviews yet
0 installs
40 views
0.0% view→install

Install

$ agentstack add skill-impertio-studio-vite-claude-skill-package-vite-syntax-build

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-impertio-studio-vite-claude-skill-package-vite-syntax-build)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Vite Syntax Build? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

vite-syntax-build

Quick Reference

Build Tool Chain Per Version

| Version | Production Bundler | Minifier (client) | Minifier (SSR) | CSS Minifier | Config Key | |---------|-------------------|--------------------|----------------|--------------|------------| | Vite 6 | Rollup | esbuild | false | esbuild | build.rollupOptions | | Vite 7 | Rollup | esbuild | false | esbuild/lightningcss | build.rollupOptions | | Vite 8+ | Rolldown | oxc | false | Lightning CSS | build.rolldownOptions |

Essential Build Options

| Option | Type | Default | Version Notes | |--------|------|---------|---------------| | build.target | string \| string[] | 'baseline-widely-available' | v7+ default; v6 used 'modules' | | build.outDir | string | 'dist' | All versions | | build.assetsDir | string | 'assets' | Not used in Library Mode | | build.assetsInlineLimit | number \| function | 4096 (4 KiB) | Function form available in all versions | | build.cssCodeSplit | boolean | true | All versions | | build.cssTarget | string \| string[] | Same as build.target | All versions | | build.cssMinify | boolean \| 'lightningcss' \| 'esbuild' | Same as build.minify | v8 defaults to Lightning CSS | | build.sourcemap | boolean \| 'inline' \| 'hidden' | false | All versions | | build.minify | boolean \| 'oxc' \| 'terser' \| 'esbuild' | 'oxc' (v8+), 'esbuild' (v6-v7) | See minifier table | | build.write | boolean | true | All versions | | build.emptyOutDir | boolean | true if outDir inside root | All versions | | build.copyPublicDir | boolean | true | All versions | | build.reportCompressedSize | boolean | true | Disable for large projects | | build.chunkSizeWarningLimit | number | 500 (KiB, uncompressed) | All versions | | build.watch | WatcherOptions \| null | null | Set {} to enable | | build.manifest | boolean \| string | false | Generates .vite/manifest.json | | build.ssrManifest | boolean \| string | false | Generates .vite/ssr-manifest.json | | build.ssr | boolean \| string | false | All versions | | build.license | boolean \| { fileName? } | false | v8+ only |

Bundler Options Per Version

| Version | Option | Type | Notes | |---------|--------|------|-------| | v6-v7 | build.rollupOptions | RollupOptions | Standard Rollup config | | v8+ | build.rolldownOptions | RolldownOptions | Replaces rollupOptions | | v8+ | build.rollupOptions | RolldownOptions | Deprecated alias for rolldownOptions |

Library Mode Options

| Option | Type | Description | |--------|------|-------------| | build.lib.entry | string \| string[] \| Record | Entry point(s) — REQUIRED | | build.lib.name | string | Global variable name for UMD/IIFE | | build.lib.formats | string[] | ['es', 'umd'] single entry; ['es', 'cjs'] multi-entry | | build.lib.fileName | string \| ((format, entryName) => string) | Output filename (auto-adds extension) | | build.lib.cssFileName | string | Custom CSS output filename |

Module Preload

| Option | Type | Default | |--------|------|---------| | build.modulePreload | boolean \| object | { polyfill: true } | | build.modulePreload.polyfill | boolean | true | | build.modulePreload.resolveDependencies | Function | — |

Critical Warnings

NEVER use build.rollupOptions in Vite 8+ projects — it is deprecated. ALWAYS use build.rolldownOptions instead. Using the old key may work as an alias but will be removed in future versions.

NEVER set build.minify: 'esbuild' in Vite 8+ — esbuild is no longer a direct dependency. If you need esbuild minification, install it manually first. ALWAYS use 'oxc' (default) or 'terser' in v8+.

NEVER set build.emptyOutDir: true when outDir is outside your project root without understanding the risk — Vite warns and skips this by default to prevent accidental deletion of important files.

NEVER rely on build.assetsDir in Library Mode — it is ignored. Library output filenames are controlled by build.lib.fileName and build.lib.cssFileName.

NEVER forget to externalize peer dependencies in Library Mode — bundling frameworks like React or Vue into your library creates duplicate instances and breaks consumer applications. ALWAYS set them in rolldownOptions.external (v8+) or rollupOptions.external (v6-v7).

ALWAYS set build.sourcemap: true or 'hidden' for production debugging — without sourcemaps, production error traces are unreadable. Use 'hidden' to generate maps without exposing them to browsers.

ALWAYS handle vite:preloadError events in production SPAs — after deployments, cached pages may reference stale chunks that no longer exist.


Decision Tree: Choosing Minifier

Is your project on Vite 8+?
├─ YES → Use default 'oxc' (30-90x faster than terser)
│        Need maximum compression? → Use 'terser' (install terser package)
│        Need esbuild? → Install esbuild manually, then set 'esbuild'
└─ NO (v6-v7) → Use default 'esbuild'
                 Need maximum compression? → Use 'terser' (install terser package)

Decision Tree: Bundler Options Key

Which Vite version?
├─ v8+ → ALWAYS use build.rolldownOptions
├─ v7  → ALWAYS use build.rollupOptions
└─ v6  → ALWAYS use build.rollupOptions

Decision Tree: build.target

Which Vite version?
├─ v8+ → Default: 'baseline-widely-available' (Chrome 111+, Edge 111+, Firefox 114+, Safari 16.4+)
├─ v7  → Default: 'baseline-widely-available' (Chrome 107+, Edge 107+, Firefox 104+, Safari 16.0+)
└─ v6  → Default: 'modules' (native ESM support)

Need older browsers?
├─ YES → Use @vitejs/plugin-legacy (adds polyfills + syntax transforms)
└─ NO  → Use 'esnext' for minimal transpiling, or keep default

Decision Tree: Sourcemap Strategy

What environment?
├─ Development → Sourcemaps automatic (no config needed)
├─ Production (internal tools) → build.sourcemap: true
├─ Production (public-facing) → build.sourcemap: 'hidden'
│  (maps generated for error tracking services, not exposed to browsers)
└─ Production (no debugging) → build.sourcemap: false (default)

Patterns

Standard Production Build

// vite.config.ts
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    target: 'baseline-widely-available',
    outDir: 'dist',
    sourcemap: 'hidden',
    minify: 'oxc',          // v8+ default; use 'esbuild' for v6-v7
    cssCodeSplit: true,
    chunkSizeWarningLimit: 500,
  },
})

Multi-Page Application

// vite.config.ts
import { resolve } from 'path'
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    rolldownOptions: {       // v8+; use rollupOptions for v6-v7
      input: {
        main: resolve(import.meta.dirname, 'index.html'),
        about: resolve(import.meta.dirname, 'about/index.html'),
        dashboard: resolve(import.meta.dirname, 'dashboard/index.html'),
      },
    },
  },
})

Library Mode

// vite.config.ts
import { resolve } from 'path'
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    lib: {
      entry: resolve(import.meta.dirname, 'lib/main.ts'),
      name: 'MyLib',
      fileName: 'my-lib',
    },
    rolldownOptions: {       // v8+; use rollupOptions for v6-v7
      external: ['react', 'react-dom'],
      output: {
        globals: {
          react: 'React',
          'react-dom': 'ReactDOM',
        },
      },
    },
  },
})

Watch Mode

// vite.config.ts
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    watch: {},               // Enable rebuild on file changes
  },
})

Or via CLI: vite build --watch

Handling Preload Errors

// main.ts — ALWAYS add this for production SPAs
window.addEventListener('vite:preloadError', (event) => {
  event.preventDefault()
  window.location.reload()   // Reload to fetch fresh assets
})

Backend Integration with Manifest

// vite.config.ts
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    manifest: true,
    rolldownOptions: {       // v8+; use rollupOptions for v6-v7
      input: '/path/to/main.ts',
    },
  },
})

Build Optimizations

CSS Code Splitting

Vite ALWAYS extracts CSS from async chunks into separate files by default. The CSS file loads automatically via `` before the chunk executes, preventing FOUC (Flash of Unstyled Content).

Disable with build.cssCodeSplit: false to bundle ALL CSS into a single file.

Preload Directives

Vite ALWAYS generates `` directives for entry chunks and their direct imports in built HTML output. This instructs browsers to prefetch required modules.

Async Chunk Loading

When async chunk A imports common chunk C, Vite rewrites the import to fetch A and C in parallel. This eliminates sequential round-trips regardless of import depth.


Reference Links

  • [references/config-options.md](references/config-options.md) — ALL build.* options with types, defaults, and version annotations
  • [references/examples.md](references/examples.md) — Production build, multi-page, library mode, watch mode examples
  • [references/anti-patterns.md](references/anti-patterns.md) — Build configuration mistakes and corrections

Official Sources

  • https://vite.dev/config/build-options
  • https://vite.dev/guide/build
  • https://vite.dev/guide/static-deploy
  • https://v6.vite.dev/config/build-options (Vite 6 reference)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.