chore: fix monorepo build pipeline and migrate shared to built package

- Root package.json: add workspace scripts (dev, build, test, test:cov, test:e2e)
  that delegate to actual scripts in shared/server/client workspaces
- shared: add tsup build step (CJS + ESM dual output, .d.ts); consumers now import
  from the built dist instead of raw TS source via path aliases
- server: replace tsc-alias with tsconfig-paths (tsc-alias mangled node_modules
  paths); fix MCP SDK path aliases to point to root node_modules (../node_modules)
- server/scripts/dev.mjs: delay node --watch until tsc -w signals first-pass done,
  eliminating the spurious restart on every dev startup
- client/vite.config.js + vitest.config.ts: remove @trek/shared path alias (no longer
  needed now that shared is a proper package)
- Consolidate package-lock.json at the workspace root; drop per-workspace lock files
This commit is contained in:
jubnl
2026-05-25 20:13:04 +02:00
parent db5c403239
commit 73e98d8caf
20 changed files with 19559 additions and 20108 deletions
-10
View File
@@ -38,9 +38,6 @@ export default defineConfig({
},
resolve: {
alias: {
// @trek/shared — Zod contract package (tests resolve it to TS source,
// mirroring the tsconfig `paths` the tsx runtime uses).
'@trek/shared': new URL('../shared/src/index.ts', import.meta.url).pathname,
'@modelcontextprotocol/sdk/server/mcp': new URL(
'./node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js',
import.meta.url
@@ -58,12 +55,5 @@ export default defineConfig({
import.meta.url
).pathname,
},
// The server build emits @trek/shared next to its source (shared/src/*.js,
// needed by the prod dist via tsc-alias). Vite's default extension order
// prefers .js over .ts, so after a build the tests would load that compiled
// CJS instead of the source — and its `require('zod')` is unresolvable from
// the shared/ dir on CI (only server deps are installed there). Resolve .ts
// first so tests always run the source, whose zod import resolves via Vite.
extensions: ['.ts', '.mts', '.mjs', '.js', '.cts', '.cjs', '.tsx', '.jsx', '.json'],
},
});