Back to skills
SkillHub ClubShip Full StackFull Stack

vite-config

Imported from https://github.com/metasaver/metasaver-marketplace.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
0
Hot score
74
Updated
March 20, 2026
Overall rating
C2.5
Composite score
2.5
Best-practice grade
B84.0

Install command

npx @skill-hub/cli install metasaver-metasaver-marketplace-vite-config

Repository

metasaver/metasaver-marketplace

Skill path: plugins/metasaver-core/skills/config/build-tools/vite-config

Imported from https://github.com/metasaver/metasaver-marketplace.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: metasaver.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install vite-config into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/metasaver/metasaver-marketplace before adding vite-config to shared team environments
  • Use vite-config for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: vite-config
description: Vite configuration templates and validation logic for React web apps. Includes 5 required standards (correct plugins for React, required path alias #src to ./src, build configuration with sourcemaps and manual chunks, server configuration with strictPort, required dependencies). Use when creating or auditing vite.config.ts files.
---

# Vite Configuration Skill

This skill provides vite.config.ts templates and validation logic for Vite build configuration.

## Purpose

Manage vite.config.ts configuration to:

- Configure correct plugins for React projects
- Set up path aliases and build options
- Configure development server settings

## Usage

This skill is invoked by the `vite-agent` when:

- Creating new vite.config.ts files
- Auditing existing Vite configurations
- Validating Vite configs against standards

## Templates

Standard templates are located at:

```
templates/vite-standalone.template.ts      # React web apps
```

## The 5 Vite Standards

### Rule 1: Correct Plugins for React Projects

All React projects must have:

- `@vitejs/plugin-react`

### Rule 2: Required Path Alias

Must include `#src` alias pointing to `./src`:

```typescript
resolve: {
  alias: {
    '#src': path.resolve(__dirname, './src'),
  },
}
```

### Rule 3: Required Build Configuration

Must include:

```typescript
build: {
  outDir: 'dist',
  sourcemap: true,
  rollupOptions: {
    output: {
      manualChunks: {
        vendor: ['react', 'react-dom'],
      },
    },
  },
}
```

### Rule 4: Required Server Configuration

Must include:

```typescript
server: {
  port: 5173,  // Or assigned port from registry
  strictPort: true,
  host: true,
}
```

### Rule 5: Required Dependencies

Must have in package.json devDependencies:

- `vite`
- `@vitejs/plugin-react`

## Validation

To validate a vite.config.ts file:

1. Read package.json to get `metasaver.projectType`
2. Check that vite.config.ts exists
3. Parse config and check plugins array
4. Verify path alias configuration
5. Check build and server configuration
6. Verify required dependencies
7. Report violations

### Validation Approach

```typescript
// Rule 1: Check plugins for React
const hasReact = plugins.some((p) => p.name.includes("vite:react"));
if (!hasReact) {
  errors.push("Rule 1: Missing @vitejs/plugin-react");
}

// Rule 2: Check path alias
if (!config.resolve?.alias?.["#src"]) {
  errors.push("Rule 2: Missing path alias '#src' → './src'");
}

// Rule 3: Check build configuration
if (!config.build?.outDir) {
  errors.push("Rule 3: Missing build.outDir");
}
if (!config.build?.sourcemap) {
  errors.push("Rule 3: Missing build.sourcemap");
}

// Rule 4: Check server configuration
if (!config.server?.port) {
  errors.push("Rule 4: Server port not set");
}
if (config.server?.strictPort !== true) {
  errors.push("Rule 4: Server strictPort must be true");
}

// Rule 5: Check dependencies
const deps = packageJson.devDependencies || {};
if (!deps.vite) errors.push("Rule 5: Missing vite in devDependencies");
if (!deps["@vitejs/plugin-react"]) {
  errors.push("Rule 5: Missing @vitejs/plugin-react in devDependencies");
}
```

## Project Type Detection

Extract from package.json:

```json
{
  "metasaver": {
    "projectType": "web-standalone"
  }
}
```

## Port Registry

Check package.json for assigned port:

```json
{
  "metasaver": {
    "port": 5173
  }
}
```

## Repository Type Considerations

- **Consumer Repos**: Must strictly follow all 5 standards unless exception declared
- **Library Repos**: May have custom Vite config for component library builds

### Exception Declaration

Consumer repos may declare exceptions in package.json:

```json
{
  "metasaver": {
    "exceptions": {
      "vite-config": {
        "type": "custom-build-plugins",
        "reason": "Requires vite-plugin-svg-icons for icon generation"
      }
    }
  }
}
```

## Best Practices

1. Place vite.config.ts at workspace root (where package.json is)
2. Use standalone template for React projects
3. Path alias must match tsconfig.json paths
4. Port must be unique across monorepo
5. Re-audit after making changes

## Integration

This skill integrates with:

- Repository type provided via `scope` parameter. If not provided, use `/skill scope-check`
- `/skill audit-workflow` - Bi-directional comparison workflow
- `/skill remediation-options` - Conform/Update/Ignore choices
- `typescript-agent` - Ensure path aliases match tsconfig.json
- `package-scripts-agent` - Ensure dev/build scripts exist
vite-config | SkillHub