Web and Desktop now share one command pair: start:* launches the artifacts of a prior complete build and dev:* builds first, then launches. start:web is new and spells out the same source launch vector as `pnpm dsh web`; dev:web runs `pnpm run build`, the three rebuild watchers, and `dsh web` in one terminal, with --skip-build and --no-serve for the previous two-terminal flow. The launcher gate pins both scripts to the dsh CLI, and a root Makefile names the same commands as make web|dev-web|desktop|dev-desktop|build. The dev-web stage supervisor waits for stages the terminal already interrupted, escalates only survivors, forwards SIGTERM once, and reports a stage that exits on its own. Signal listeners are persistent because the tsdown watchers bundle signal-exit, which re-raises a signal when it finds no other listener.
32 lines
1.0 KiB
Makefile
32 lines
1.0 KiB
Makefile
# Short names for the Web and Desktop application commands. The package.json
|
|
# scripts they call stay the source of truth; docs/development.md documents both.
|
|
.DEFAULT_GOAL := help
|
|
.PHONY: help build web desktop dev-web dev-desktop
|
|
|
|
PNPM ?= pnpm
|
|
ARGS ?=
|
|
|
|
help:
|
|
@echo "make build pnpm run build complete repository build"
|
|
@echo "make web pnpm run start:web serve the built Web artifacts from source"
|
|
@echo "make desktop pnpm run start:desktop launch the built Desktop artifacts"
|
|
@echo "make dev-web pnpm run dev:web build, serve, and rebuild Web on source edits"
|
|
@echo "make dev-desktop pnpm run dev:desktop build, then launch Desktop"
|
|
@echo "ARGS='--no-open --port 3081' forwards options to the launched application;"
|
|
@echo "the Web commands accept dsh web flags, the Desktop launcher accepts none."
|
|
|
|
build:
|
|
$(PNPM) run build
|
|
|
|
web:
|
|
$(PNPM) run start:web $(ARGS)
|
|
|
|
desktop:
|
|
$(PNPM) run start:desktop $(ARGS)
|
|
|
|
dev-web:
|
|
$(PNPM) run dev:web $(ARGS)
|
|
|
|
dev-desktop:
|
|
$(PNPM) run dev:desktop $(ARGS)
|