Die README nannte `node werkzeuge/konto.js`, im Abbild lag aber nur das Sicherungswerkzeug, und tsx gibt es dort nicht. Ein frisch aufgesetzter Server stand ohne jedes Konto da. Das Kontoskript wird jetzt beim Bau mit esbuild zu einer Datei gebuendelt; die nativen Module bleiben aussen vor, sie bringt die Standalone-Ausgabe mit. Aufgefallen ist das nicht, weil der Abnahmelauf gegen `next start` prueft. Neu ist deshalb `npm run abnahme:container`: Abbild bauen, mit leerem Volume starten, erstes Konto anlegen, anmelden, Passwort neu setzen, sichern. Ausserdem trennt saubererName Windows-Pfade jetzt auch unter Linux ab (path.win32.basename). Der Test dazu war nur unter Windows gruen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
62 lines
1.9 KiB
JSON
62 lines
1.9 KiB
JSON
{
|
||
"name": "lernbar",
|
||
"version": "1.0.0",
|
||
"private": true,
|
||
"description": "Lern-Bar – betriebliche Ausbildung Fachinformatiker Systemintegration",
|
||
"engines": {
|
||
"node": ">=22"
|
||
},
|
||
"scripts": {
|
||
"dev": "next dev",
|
||
"build": "next build",
|
||
"start": "next start",
|
||
"lint": "eslint .",
|
||
"typecheck": "tsc --noEmit",
|
||
"test": "vitest run",
|
||
"test:watch": "vitest",
|
||
"e2e": "playwright test",
|
||
"inhalte:pruefen": "tsx scripts/inhalte-pruefen.ts",
|
||
"konto:anlegen": "tsx scripts/konto-anlegen.ts",
|
||
"werkzeuge:bauen": "esbuild scripts/konto-anlegen.ts --bundle --platform=node --target=node22 --format=cjs --external:better-sqlite3 --external:@node-rs/argon2 --outfile=build/werkzeuge/konto.js",
|
||
"backup": "bash scripts/im-container/sicherung.sh",
|
||
"restore": "bash scripts/im-container/wiederherstellen.sh",
|
||
"screenshots": "tsx scripts/screenshots.ts",
|
||
"symbole": "tsx scripts/symbole.ts",
|
||
"abnahme": "node scripts/pruefungen/abnahme.mjs",
|
||
"abnahme:container": "node scripts/pruefungen/container.mjs"
|
||
},
|
||
"dependencies": {
|
||
"@node-rs/argon2": "^2.0.2",
|
||
"better-sqlite3": "^12.11.1",
|
||
"drizzle-orm": "^0.45.2",
|
||
"markdown-it": "^14.1.0",
|
||
"next": "^15.5.4",
|
||
"pdfkit": "^0.17.1",
|
||
"react": "^19.1.0",
|
||
"react-dom": "^19.1.0",
|
||
"server-only": "^0.0.1",
|
||
"yaml": "^2.8.0",
|
||
"zod": "^3.25.76"
|
||
},
|
||
"devDependencies": {
|
||
"@eslint/eslintrc": "^3.3.7",
|
||
"@playwright/test": "^1.55.0",
|
||
"@types/better-sqlite3": "^7.6.13",
|
||
"@types/markdown-it": "^14.1.2",
|
||
"@types/node": "^22.15.0",
|
||
"@types/pdfkit": "^0.14.0",
|
||
"@types/react": "^19.1.0",
|
||
"@types/react-dom": "^19.1.0",
|
||
"eslint": "^9.34.0",
|
||
"eslint-config-next": "^15.5.4",
|
||
"tsx": "^4.20.0",
|
||
"typescript": "^5.9.2",
|
||
"vitest": "^3.2.4"
|
||
},
|
||
"allowScripts": {
|
||
"better-sqlite3@12.11.1": true,
|
||
"esbuild@0.28.2": true,
|
||
"unrs-resolver@1.12.2": true
|
||
}
|
||
}
|