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. |