fix(build): main bouwt weer — extensionAlias voor @shared + PageProps-constraint #175
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Scrum4Me!175
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/shared-js-extension-webpack"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
mainstaat rood sinds #174. De CI-job Lint, Typecheck, Test & Build faalt, en de deploy-flow strandde vandaag op precies dezelfde fout bij stap 7 — ná een geslaagdeprisma migrate deploy. De database heeft het issue-tracker-schema dus al; alleen de code stond nog niet uitgerold.Twee losse blokkers.
1.
Module not found: Can't resolve './issue-status.js'De gevendorde
@shared-code gebruikt ESM-stijl.js-extensies in relatieve imports naar.ts-bron:issue-forgejo-mirror.ts→'./issue-status.js', terwijl het bestandissue-status.tsheet.Dat is geen slordigheid maar een bewuste keuze uit shared #52 —
scrum4me-mcpcompileert metnodenexten weigert de extensieloze vorm. De rollout-runbook noemt die PR ook expliciet.Turbopack kan dit hier niet resolven: zijn
.js→.ts-resolutie hangt aan nodenext-TS-resolutie terwijl dit project opmoduleResolution: "Bundler"staat, enturbopack.resolveAliaswerkt niet op relatieve specifiers. Vandaar een webpack-extensionAliasplus--webpackop zoweldevalsbuild— laat die vlag niet weg, anders komt de fout terug.Dit is niet nieuw bedacht:
scrum4me-workersliep hier eerder op stuk en loste het op dezelfde manier op. De comment in de config verwijst daarnaar, zodat de volgende lezer niet opnieuw op Turbopack gokt.Prijs die je hiervoor betaalt: Scrum4Me bouwt weer met webpack in plaats van Turbopack. Trager, en een bewuste stap terug. Het alternatief — de
.js-extensie in shared terugdraaien — repareert Scrum4Me maar breektscrum4me-mcp, dus dat is geen uitweg.2. PageProps-constraint op de admin-jobs-pagina
AdminJobsPage({ searchParams }: AdminJobsPageProps = {})— die= {}-default maakt het props-type… | undefined, en de door Next gegenereerdePageProps-constraint verwerpt dat. Next levert props altijd aan, dus de default dekte niets af. De twee anderesearchParams-pagina's in deze repo (insights, mobile solo) staan al zonder default; deze was de uitzondering.Verificatie
Module not found✓ Compiled successfullytsc --noEmitWat ik niet lokaal kon afmaken: de laatste buildfase, page-data-collectie, evalueert route-modules en vereist een echte
DATABASE_URL. Mijn clone heeft geen.env; met placeholders valt hij om op/api/hub/approvals/[id]/answer. CI krijgtDATABASE_URL/DIRECT_URLuit secrets en de server heeft een.env, dus die fase hoort daar te slagen — maar ik claim dat niet, CI moet het bevestigen.Terzijde: mijn eerdere baseline van "296 typefouten" in deze repo was een artefact van een niet-gegenereerde Prisma-client. Na een schone
npm cizijn het er 1, en na deze PR 0.Daarna
Zodra dit groen is kan de deploy hervat worden; die maakt stap 2 en 4 van de issue-tracker-rollout af. De migraties zijn al toegepast.
Verdict: APPROVED
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
Geen blokkerende of niet-blokkerende findings.
Verificatie
npm run typecheck: geslaagd.npm run lint: geslaagd met 0 errors en 6 bestaande warnings.SESSION_SECRET=0123456789abcdef0123456789abcdef npm run build: geslaagd; Next 16.2.4 build draait expliciet met webpack en compileert inclusief TypeScript/page generation.