scaffold
The scaffold command is an interactive prompt that scaffolds a project or package from scratch. It
creates all the necessary files, folders, and configurations for maintaining an npm package(s).
Packages are structured for the browser platform, using the esm format.
The command requires a destination folder param to copy files to. The path is relative to the current working directory.
packemon scaffold .
Options
Scaffold supports the following command line options.
--force- Overwrite files that already exist (if running the same command multiple times).--skipInstall- Skip installation of npm dependencies. Defaults tofalse.--packageManager- Package manager to install dependencies with. Defaults toyarn.--packagesFolder- Folder in which packages will be located (monorepo only). Defaults topackages.--template- Template to select by default.
Templates
The following templates can be scaffolded.
monorepo
Structures a project to be a monorepo of many packages.
- Creates config files for common developer tools (Babel, ESLint, Vitest, TypeScript, etc), based on moonrepo presets.
- Creates a
packagesfolder where all packages will exist. Create a package with themonorepo-packagetemplate. - Configures
package.jsonwith pre-defined scripts and Yarn workspaces. - Configures
tsconfig.jsonfor type-checking and project references.
monorepo-package
Creates an npm package within a monorepo's packages folder. Requires monorepo to be scaffolded
first!
- Creates
srcandtestsfolders with example TypeScript files. - Creates a
package.jsonwith information gathered from the prompts. - Configures package
tsconfig.jsons to use project references. - Adds a reference to the root
tsconfig.json.
polyrepo-package
Structures a project to be a polyrepo. Creates a single npm package within the current folder.
- Creates config files for common developer tools (Babel, ESLint, Vitest, TypeScript, etc), based on moonrepo presets.
- Creates
srcandtestsfolders with example TypeScript files. - Creates a
package.jsonwith information gathered from the prompts. - Configures
package.jsonwith pre-defined scripts. - Configures
tsconfig.jsonfor type-checking.