@vitejs/plugin-react 6 peers on vite ^8 and nothing lower, so the build had to move before the plugin could. vite 8 bundles with rolldown rather than rollup, which is most of what is here. The object form of `manualChunks` -- a chunk name against the list of packages in it -- is gone; rolldown takes groups tested against module paths instead. Same two chunks come out, `vendor` and `icons`, with the same contents; `icons` is tried first because the first matching group wins. `rollupOptions` is now a deprecated alias, so it is spelled `rolldownOptions`. The lockfile is regenerated rather than patched. vitest depends on vite itself, and an incremental install was happy to leave 6.4.3 hoisted for vitest while web built against 8.3.0 -- two majors in one tree, which is not a state to ship. A clean install collapses to one. vite 8 wants Node ^20.19 || >=22.12, above the >=20.10 the README and engines promised, so both say 20.19 now. CI and the image are on 22 and were never affected. Rolldown reports two modules that are imported both statically and dynamically, so the dynamic import cannot split them out. That is true of the source either way -- store/sieve.ts has three static importers and one dynamic -- and is left alone here.
34 lines
1.6 KiB
JSON
34 lines
1.6 KiB
JSON
{
|
|
"name": "ihasmail",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"description": "ihasmail \u2014 a fast, modern JMAP webmail for Stalwart Mail Server",
|
|
"license": "AGPL-3.0-or-later",
|
|
"type": "module",
|
|
"workspaces": [
|
|
"server",
|
|
"web"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.19"
|
|
},
|
|
"scripts": {
|
|
"dev": "concurrently -n server,web -c blue,magenta \"npm run dev -w server\" \"npm run dev -w web\"",
|
|
"build": "npm run build -w web && npm run build -w server",
|
|
"start": "node server/dist/index.js",
|
|
"typecheck": "npm run typecheck -w web && npm run typecheck -w server",
|
|
"test": "npm run test -w web && npm run test -w server",
|
|
"lint": "npm run typecheck",
|
|
"mock": "npm run mock -w server",
|
|
"dev:mock": "concurrently -n mock,server,web -c yellow,blue,magenta \"npm run mock -w server\" \"STALWART_URL=http://127.0.0.1:8788 npm run dev -w server\" \"npm run dev -w web\"",
|
|
"dev:mock:no-future-release": "concurrently -n mock,server,web -c yellow,blue,magenta \"npm run mock:no-future-release -w server\" \"STALWART_URL=http://127.0.0.1:8788 npm run dev -w server\" \"npm run dev -w web\"",
|
|
"i18n:coverage": "node scripts/i18n-coverage.mjs",
|
|
"i18n:check": "node scripts/i18n-catalog-check.mjs && node scripts/i18n-literals.mjs",
|
|
"dev:mock:no-keyword-sort": "concurrently -n mock,server,web -c yellow,blue,magenta \"npm run mock:no-keyword-sort -w server\" \"STALWART_URL=http://127.0.0.1:8788 npm run dev -w server\" \"npm run dev -w web\""
|
|
},
|
|
"devDependencies": {
|
|
"concurrently": "^9.1.2",
|
|
"typescript": "^5.7.3"
|
|
}
|
|
}
|