vite-plugin-pwa runs in injectManifest mode over a minimal src/sw.ts that caches the injected precache list on install. The manifest lives in web/manifest.json (MealQuest, standalone at /, Grape theme over the page background) with 192, 512 and maskable 512 PNG icons and a 180 px apple-touch-icon, all generated from design/logos/logo_v1_2Oct2026.jpg by web/scripts/generate-icons.py. The plugin links the manifest and adds the registerSW.js script only in production builds. src/pwa.test.ts builds and previews the app to assert the shipped manifest, sw.js, icon sizes and registration, and checks that the dev server registers nothing. Maestro task: 58b74786-937a-45a5-850f-7913273beba2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
1.0 KiB
JSON
36 lines
1.0 KiB
JSON
{
|
|
"name": "mealquest-web",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "npm run lint:colors && npm run typecheck && vite build && npm run check:dist-fonts",
|
|
"preview": "vite preview",
|
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.sw.json",
|
|
"test": "npm run lint:colors && vitest run",
|
|
"lint:colors": "node scripts/lint-colors.mjs",
|
|
"check:dist-fonts": "node scripts/check-dist-fonts.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-query": "^5.104.1",
|
|
"lucide-react": "^1.51.0",
|
|
"react": "^19.3.0",
|
|
"react-dom": "^19.3.0",
|
|
"react-router": "^7.18.4"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/dom": "^10.4.2",
|
|
"@testing-library/jest-dom": "^7.0.1",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@types/react": "^19.3.0",
|
|
"@types/react-dom": "^19.3.0",
|
|
"@vitejs/plugin-react": "^6.1.1",
|
|
"jsdom": "^30.1.1",
|
|
"typescript": "^7.0.2",
|
|
"vite": "^8.3.2",
|
|
"vite-plugin-pwa": "^2.0.0",
|
|
"vitest": "^5.0.3"
|
|
}
|
|
}
|