services: # Watch-mode dev build. Source is bind-mounted so edits on the host # trigger rebuilds inside the container. `dist/` is written back to # the host so Chrome/Firefox can load it as an unpacked extension. dev: build: context: . target: dev volumes: - .:/app # Anonymous volume keeps the container's node_modules from being # shadowed by the host bind-mount above. Deps stay isolated. - /app/node_modules tty: true stdin_open: true # One-shot production build. Writes to ./dist on the host. build: build: context: . target: build volumes: - ./dist:/app/dist command: sh -c "bun run wxt prepare && bun run build"