Воркер теперь собирается через injectManifest: generateSW умеет только кэш, а уведомление показывает именно воркер — страница при этом может быть закрыта. Нажатие на уведомление переиспользует уже открытое окно, а не плодит второе. Включение — строкой на главном экране, по нажатию. Не всплывающим окном на входе: разрешение спрашивается один раз за установку, отказ браузер запоминает навсегда, и потраченная впустую попытка закрывает канал. Если сервер уведомления не настроил — разрешение не запрашиваем вовсе. Отдельные тексты вместо молчания: на iPhone без установки на домашний экран уведомления невозможны в принципе, и об этом сказано прямо. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
12 lines
616 B
JSON
12 lines
616 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2021", "useDefineForClassFields": true, "lib": ["ES2021", "DOM", "DOM.Iterable", "WebWorker"],
|
|
"module": "ESNext", "skipLibCheck": true, "moduleResolution": "bundler",
|
|
"allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true,
|
|
"noEmit": true, "jsx": "react-jsx", "strict": true, "noUnusedLocals": true,
|
|
"noUnusedParameters": true, "noFallthroughCasesInSwitch": true,
|
|
"baseUrl": ".", "paths": { "@/*": ["src/*"] }, "types": ["vite-plugin-pwa/client", "vitest/globals", "@testing-library/jest-dom"]
|
|
},
|
|
"include": ["src"]
|
|
}
|