Dependencies naar de nieuwste versies + update-check in de testsuite
Upgrades
- Frontend: React 19.2, Vite 8.2, @vitejs/plugin-react 6.1, ESLint 9.39
- Backend: Express 5.2, Helmet 8.3, express-rate-limit 8.7, pino 10.3,
pino-http 11, pg 8.23, dotenv 17.4, bcryptjs 3.0, ESLint 10.9
- Lockfiles opnieuw gegenereerd (backend had er geen)
Breaking changes opgevangen
- Express 5 laat kale wildcards in routes niet toe: app.use("/api/*") is een
prefix-mount geworden en app.get("*") pad-loze middleware
- Vite 8 bundelt met Rolldown, dat de object-vorm van manualChunks niet kent;
omgezet naar build.rollupOptions.output.advancedChunks
- Rate-limit headers verschillen per RFC-draft; de test kijkt nu naar de hele
RateLimit-headerfamilie in plaats van naar RateLimit-Limit
- ESLint blijft in de frontend op 9: eslint-plugin-react ondersteunt nog geen
ESLint 10 (peer <= ^9.7)
Update-check bij het testen
- docker/check-updates.mjs vergelijkt beide package.json's met het
npm-register; werkt zonder node_modules en zonder npm install
- test.ps1 draait dit als stap 1 van 4, met -Strict (falen) en -SkipDeps
(offline). Ook informatief in de Test-stage van de pipeline
- Bewuste uitzonderingen met reden in docker/update-exceptions.json
- dev.ps1 up gebruikt --renew-anon-volumes, anders houdt de dev-container de
oude node_modules na een upgrade
Overig
- ESLint flat configs voor beide packages; npm run lint werkte niet omdat er
geen configuratie was. Beide draaien nu groen (alleen waarschuwingen over
bestaande ongebruikte variabelen)
- README.md, BEHEER.md en Changelog.md bijgewerkt
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bfec3a25f3
commit
1c0eed61f6
@@ -0,0 +1,30 @@
|
||||
// ESLint 9 (niet 10): eslint-plugin-react ondersteunt nog geen ESLint 10
|
||||
// (peer: eslint <= ^9.7). Zodra de plugin bijtrekt kan dit mee omhoog.
|
||||
import js from "@eslint/js";
|
||||
import react from "eslint-plugin-react";
|
||||
import globals from "globals";
|
||||
|
||||
export default [
|
||||
js.configs.recommended,
|
||||
react.configs.flat.recommended,
|
||||
react.configs.flat["jsx-runtime"],
|
||||
{
|
||||
files: ["src/**/*.{js,jsx}"],
|
||||
languageOptions: {
|
||||
ecmaVersion: "latest",
|
||||
sourceType: "module",
|
||||
globals: { ...globals.browser },
|
||||
parserOptions: { ecmaFeatures: { jsx: true } },
|
||||
},
|
||||
settings: { react: { version: "detect" } },
|
||||
rules: {
|
||||
"no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
|
||||
"react/prop-types": "off",
|
||||
// Lege catch-blokken zijn hier bewust (localStorage kan gooien)
|
||||
"no-empty": ["error", { allowEmptyCatch: true }],
|
||||
// De icoon-arrays worden per index gerenderd, niet als lijst; geen
|
||||
// runtime-waarschuwing van React, dus een hint in plaats van een fout.
|
||||
"react/jsx-key": "warn",
|
||||
},
|
||||
},
|
||||
];
|
||||
Generated
+4060
-4930
File diff suppressed because it is too large
Load Diff
+24
-22
@@ -1,23 +1,25 @@
|
||||
{
|
||||
"name": "vibefinance-frontend",
|
||||
"version": "0.1.6-dev",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"lint": "eslint src --ext .js,.jsx"
|
||||
},
|
||||
"dependencies": {
|
||||
"jszip": "^3.10.1",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-react": "^4.3.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-react": "^7.34.0",
|
||||
"vite": "^5.4.0"
|
||||
}
|
||||
}
|
||||
"name": "vibefinance-frontend",
|
||||
"version": "0.1.6-dev",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"lint": "eslint src"
|
||||
},
|
||||
"dependencies": {
|
||||
"jszip": "^3.10.1",
|
||||
"react": "^19.2.8",
|
||||
"react-dom": "^19.2.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.39.5",
|
||||
"@vitejs/plugin-react": "^6.1.1",
|
||||
"eslint": "^9.39.5",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"globals": "^17.12.0",
|
||||
"vite": "^8.2.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,9 +26,14 @@ export default defineConfig({
|
||||
chunkSizeWarningLimit: 800,
|
||||
rollupOptions: {
|
||||
output: {
|
||||
// Splits vendor chunks voor betere caching
|
||||
manualChunks: {
|
||||
react: ["react", "react-dom"],
|
||||
// Splits vendor chunks voor betere caching. Vite 8 bundelt met
|
||||
// Rolldown; die kent de object-vorm van manualChunks niet, dus dit
|
||||
// gaat via advancedChunks.
|
||||
advancedChunks: {
|
||||
groups: [
|
||||
// RegExp via constructor: module-ids zijn genormaliseerd met "/"
|
||||
{ name: "react", test: new RegExp("node_modules/(react|react-dom|scheduler)/") },
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user