feat: Complete fleet — 94 skills across 10+ domains
Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
157
skills/vite/references/rolldown-migration.md
Normal file
157
skills/vite/references/rolldown-migration.md
Normal file
@@ -0,0 +1,157 @@
|
||||
---
|
||||
name: vite-rolldown
|
||||
description: Vite 8 Rolldown bundler and Oxc transformer migration
|
||||
---
|
||||
|
||||
# Rolldown Migration (Vite 8)
|
||||
|
||||
Vite 8 replaces esbuild+Rollup with Rolldown, a unified Rust-based bundler.
|
||||
|
||||
## What Changed
|
||||
|
||||
| Before (Vite 7) | After (Vite 8) |
|
||||
|-----------------|----------------|
|
||||
| esbuild (dev transform) | Oxc Transformer |
|
||||
| esbuild (dep pre-bundling) | Rolldown |
|
||||
| Rollup (production build) | Rolldown |
|
||||
| `rollupOptions` | `rolldownOptions` |
|
||||
| `esbuild` option | `oxc` option |
|
||||
|
||||
## Performance Impact
|
||||
|
||||
- 10-30x faster than Rollup for production builds
|
||||
- Matches esbuild's dev performance
|
||||
- Unified behavior between dev and build
|
||||
|
||||
## Config Migration
|
||||
|
||||
### rollupOptions → rolldownOptions
|
||||
|
||||
```ts
|
||||
// Before (Vite 7)
|
||||
export default defineConfig({
|
||||
build: {
|
||||
rollupOptions: {
|
||||
external: ['vue'],
|
||||
output: { globals: { vue: 'Vue' } },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
// After (Vite 8)
|
||||
export default defineConfig({
|
||||
build: {
|
||||
rolldownOptions: {
|
||||
external: ['vue'],
|
||||
output: { globals: { vue: 'Vue' } },
|
||||
},
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### esbuild → oxc
|
||||
|
||||
```ts
|
||||
// Before (Vite 7)
|
||||
export default defineConfig({
|
||||
esbuild: {
|
||||
jsxFactory: 'h',
|
||||
jsxFragment: 'Fragment',
|
||||
},
|
||||
})
|
||||
|
||||
// After (Vite 8)
|
||||
export default defineConfig({
|
||||
oxc: {
|
||||
jsx: {
|
||||
runtime: 'classic',
|
||||
pragma: 'h',
|
||||
pragmaFrag: 'Fragment',
|
||||
},
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### JSX Configuration
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
oxc: {
|
||||
jsx: {
|
||||
runtime: 'automatic', // or 'classic'
|
||||
importSource: 'react', // for automatic runtime
|
||||
},
|
||||
jsxInject: `import React from 'react'`, // auto-inject
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### Custom Transform Targets
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
oxc: {
|
||||
include: ['**/*.ts', '**/*.tsx'],
|
||||
exclude: ['node_modules/**'],
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
## Plugin Compatibility
|
||||
|
||||
Most Vite plugins work unchanged. Rolldown supports Rollup's plugin API.
|
||||
|
||||
If a plugin only works during build:
|
||||
|
||||
```ts
|
||||
{
|
||||
...rollupPlugin(),
|
||||
enforce: 'post',
|
||||
apply: 'build',
|
||||
}
|
||||
```
|
||||
|
||||
## New Capabilities
|
||||
|
||||
Rolldown unlocks features not possible before:
|
||||
|
||||
- Full bundle mode (experimental)
|
||||
- Module-level persistent cache
|
||||
- More flexible chunk splitting
|
||||
- Module Federation support
|
||||
|
||||
## Gradual Migration
|
||||
|
||||
For large projects, migrate via `rolldown-vite` first:
|
||||
|
||||
```bash
|
||||
# Step 1: Test with rolldown-vite
|
||||
pnpm add -D rolldown-vite
|
||||
|
||||
# Replace vite import in config
|
||||
import { defineConfig } from 'rolldown-vite'
|
||||
|
||||
# Step 2: Once stable, upgrade to Vite 8
|
||||
pnpm add -D vite@8
|
||||
```
|
||||
|
||||
## Overriding Vite in Frameworks
|
||||
|
||||
When framework depends on older Vite:
|
||||
|
||||
```json
|
||||
{
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"vite": "8.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!--
|
||||
Source references:
|
||||
- https://vite.dev/blog/announcing-vite8-beta
|
||||
- https://vite.dev/blog/announcing-vite7
|
||||
- https://vite.dev/config/shared-options#oxc
|
||||
-->
|
||||
Reference in New Issue
Block a user