[]previous and next page

ScaffoldOptions

The choices for a generated project.

The choices for a generated project. Only name is required: the library has no other defaults, so a missing add-on is off. (The command line asks, and defaults Biome on.)

Import#

ts
import type { ScaffoldOptions } from "create-shadow-app";

Signature#

ts
interface ScaffoldOptions {
  /** The npm package name written to `package.json`. */
  name: string;
  /** `"spa"` (default), `"dusk"`, `"content"`, `"dashboard"` or `"api"`. */
  template?: TemplateName | undefined;
  /** Add Tailwind CSS 4 through its Vite plugin. */
  tailwind?: boolean | undefined;
  /** Add Biome as linter and formatter. */
  biome?: boolean | undefined;
  /** Add Vitest, happy-dom, `@shadow-js/testing` and an example test. */
  vitest?: boolean | undefined;
  /** Add Convex: provider, schema, sample functions. */
  convex?: boolean | undefined;
  /** Add Clerk: provider, sign-in and sign-up, a protected route. */
  clerk?: boolean | undefined;
  /** Add the `shadow-ui` scaffolding (`components.json`, `cn()`, theme). Implies Tailwind. */
  ui?: boolean | undefined;
  /** Add the ESLint flat config of `@shadow-js/eslint-plugin`. */
  eslint?: boolean | undefined;
  /** Mount the devtools in development only. */
  devtools?: boolean | undefined;
  /** `spa` only: client-side routing with `@shadow-js/router`. Clerk and Convex imply it. `dusk` always routes. */
  router?: boolean | undefined;
  /** `dusk` only: the deployment target (`@shadow-js/dusk` adapter). Default: the Node server, run by `dusk start`. */
  adapter?: AdapterName | undefined;
  /** Package manager the README and the next steps talk about. Default `"npm"`. */
  packageManager?: PackageManager | undefined;
  /** Install ShadowJS from local tarballs. */
  local?: LocalPack | undefined;
}

Members#

Name Type Description
name name: string The npm package name written to package.json.
template? template?: TemplateName | undefined "spa" (default), "dusk", "content", "dashboard" or "api".
tailwind? tailwind?: boolean | undefined Add Tailwind CSS 4 through its Vite plugin.
biome? biome?: boolean | undefined Add Biome as linter and formatter.
vitest? vitest?: boolean | undefined Add Vitest, happy-dom, @shadow-js/testing and an example test.
convex? convex?: boolean | undefined Add Convex: provider, schema, sample functions.
clerk? clerk?: boolean | undefined Add Clerk: provider, sign-in and sign-up, a protected route.
ui? ui?: boolean | undefined Add the shadow-ui scaffolding (components.json, cn(), theme). Implies Tailwind.
eslint? eslint?: boolean | undefined Add the ESLint flat config of @shadow-js/eslint-plugin.
devtools? devtools?: boolean | undefined Mount the devtools in development only.
router? router?: boolean | undefined spa only: client-side routing with @shadow-js/router. Clerk and Convex imply it. dusk always routes.
adapter? adapter?: AdapterName | undefined dusk only: the deployment target (@shadow-js/dusk adapter). Default: the Node server, run by dusk start.
packageManager? packageManager?: PackageManager | undefined Package manager the README and the next steps talk about. Default "npm".
local? local?: LocalPack | undefined Install ShadowJS from local tarballs.