Skip to main content

Vite

Scaffold a Vite workspace with TypeScript.

Why Use This Command?

  • Installs Vite with TypeScript so you get fast dev server startup and hot module replacement out of the box.
  • Auto-detects monorepo or workspace mode so the same command works whether you're starting fresh or adding to an existing project.
  • Wires up vite, tsc && vite build, and vite preview scripts so the workspace runs without extra configuration.

Requirements

  • Node.js runtime — Use any Node.js LTS release.
  • Empty directory (monorepo mode) or monorepo root (workspace mode) — The command auto-detects which mode to use.

Usage

Options

FlagDescription
-d, --dry-runRun without writing any files.
--name <name>Project or workspace name.
--workspace-name <name>Workspace directory name.
--output <dir>Output directory.

Output Structure

text
{project-slug}/
├── package.json
├── nova.config.json
├── apps/
│   └── {workspace-name}/
│       ├── package.json
│       ├── vite.config.mts
│       ├── tsconfig.json
│       ├── index.html
│       └── src/
│           └── main.ts
└── packages/

Config Fields

FieldDescription
project.name.slugRead in workspace mode to derive the registered workspace name; registration is skipped with a warning if absent. In monorepo mode, written from the project name.
project.name.titleWritten in monorepo mode, title-cased from the project slug.
workspacesA workspaces entry is written for the new workspace: name ({projectSlug}-app-{workspaceName}), role (app), and policy (freezable).

How It Works

Interactive Wizard

When run without flags, the command walks you through an interactive wizard:

Monorepo mode (no package.json found):

  1. Project name — Enter a slug for your monorepo (e.g. my-vite-app).
  2. Workspace name — Enter a slug for the workspace directory (default: vite).
  3. Where should the project be created? — Choose between creating a new directory or building in the current working directory.
  4. Output directory — If creating a new directory, confirm the path (default: ./{project-name}).
  5. Run generators — Optionally run project-level generators (.editorconfig, .gitignore, LICENSE, etc.).

Workspace mode (package.json with workspaces found):

  1. Package name — Enter a slug for the workspace package (e.g. my-vite-app).
  2. Workspace name — Enter a slug for the workspace directory (default: vite).
  3. Output directory — Confirm the workspace path (default: ./apps/{workspace-name}).

Non-Interactive Mode

Provide --name, --workspace-name, and --output to skip all prompts:

bash
nova scaffold app vite --name my-vite-app --workspace-name vite --output ./my-vite-app

Next Steps

After scaffolding, consider running generators to add essential project files like .editorconfig, .gitignore, LICENSE, and README.md.