Project Builds
Directory builds, file discovery, package skipping, output paths, manifests, and schema loading.
quire build compiles a directory of .quire files into StretchPress block JSON.
quire build ./views --out ./dist
Discovery
The build command recursively discovers files ending in .quire.
Directories containing quire.package.json are treated as component packages and skipped by view discovery. Their exported .quire files remain available to imports, but package internals are not compiled as standalone page views.
Ignored directories are .git, node_modules, tmp, dist, and coverage.
Source layout
The source examples include a small site under examples/site/:
examples/site/docs.quire
examples/site/features.quire
examples/site/home.quire
examples/site/pricing.quire
One project file imports components and declares a page model. From examples/site/docs.quire:
import { Nav, Hero, FAQ, CTA, Footer } from "../../library/standard"
quire StretchPressDocs {
model {
page: StretchPressPage
navItems: StandardNavItem[]
legalItems: StandardNavItem[]
docsSections: StretchPressDocSection[]
quickLinks: StandardNavItem[]
faqItems: StandardFAQItem[]
}
route "/docs"
locale locale("en-US", "ltr")
dir dir("ltr")
title page.metaTitle
Output
Relative source paths are preserved:
views/home.quire -> dist/home.blocks.json
views/products/show.quire -> dist/products/show.blocks.json
Builds also write:
dist/quire.manifest.json
The manifest uses format: "stretchpress.manifest", version: 1, count, and an entries array containing names, sources, outputs, routes, and titles. It is described by schemas/stretchpress-manifest.v1.schema.json.
Schema loading
Each source file uses the same project-schema discovery rules as quire check and quire compile. Pass --schema path/to/schema.json to force a schema extension for the whole build.