diff --git a/packages/tools/bin/run-wrangler-dev b/packages/tools/bin/run-wrangler-dev index f3bf12b..df29002 100755 --- a/packages/tools/bin/run-wrangler-dev +++ b/packages/tools/bin/run-wrangler-dev @@ -3,6 +3,21 @@ set -eu NAME=$(jq -r '.name' package.json) +# Give each worker a stable, unique dev port so `turbo dev` can run them all in +# parallel without colliding on wrangler's default 8787 (and its 9229 inspector +# port). The offset is the worker's alphabetical position among its siblings, so +# it stays deterministic and needs no per-worker configuration. +OFFSET=$( + for dir in ../*/; do + [ -f "${dir}wrangler.jsonc" ] || continue + jq -r '.name' "${dir}package.json" + done | sort | grep -Fnx "$NAME" | cut -d: -f1 +) +PORT=$((8787 + OFFSET - 1)) +INSPECTOR_PORT=$((9229 + OFFSET - 1)) + exec wrangler dev \ --var NAME:"$NAME" \ + --port "$PORT" \ + --inspector-port "$INSPECTOR_PORT" \ "$@" diff --git a/turbo.jsonc b/turbo.jsonc index 5dee2d2..6329ca0 100644 --- a/turbo.jsonc +++ b/turbo.jsonc @@ -1,4 +1,6 @@ { + // Needed as there are...a lot of microservices. Good luck running locally. + "concurrency": "20", "$schema": "https://turbo.build/schema.json", "globalDependencies": ["**/.dev.vars"], "globalEnv": ["CI", "GITHUB_ACTIONS", "VITEST"],