Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка манифеста PWA и Service Worker

Проверьте манифесты PWA, service worker и конфигурации Workbox: сломанный JSON манифеста, start_url вне scope, закэшированные данные сессии или аккаунта, ошибки с importScripts и respondWith, пробелы в приглашении к установке и рискованные настройки кэша и обновлений.

$5.00

Что вы получите: 1 файл · 53.05 KB · ZIP

Варианты покупки

Описание товара

Одна лишняя запятая в конце в manifest.webmanifest, и браузеры считают, что у вашего приложения вообще нет манифеста: ни имени, ни иконок, ни приглашения к установке. Маршрут Workbox, который отдаёт /api/account через StaleWhileRevalidate, сохраняет данные аккаунта клиента на общем компьютере после того, как он вышел, потому что Cache API игнорирует Cache-Control: private. event.respondWith(), вызванный после await, выбрасывает исключение, и запрос уходит в сеть, будто воркера не существует. Этот навык находит эти и другие ошибки PWA, перечисленные ниже, до публикации и объясняет, как исправить каждую.

Ваш агент запускает сканер для манифестов веб-приложения (manifest.json, *.webmanifest, app/manifest.ts в Next.js, манифест в конфигурациях vite-plugin-pwa), service worker (написанных вручную, Workbox, Serwist), конфигураций runtimeCaching в Workbox (workbox-config.js, vite-plugin-pwa, next-pwa, webpack), ngsw-config.json в Angular и вызовов регистрации service worker. Он разбирает манифесты как строгий JSON, как это делают браузеры, читает JavaScript и TypeScript без учёта комментариев и строк, сопоставляет целые сегменты пути URL (так что /api/session считается приватным, а /api/sessions, расписание конференции, нет), понимает сопоставители Workbox, исключающие URL (if ... return false, denylist в NavigationRoute), и знает значения по умолчанию vite-plugin-pwa и next-pwa. Код service worker из шаблонов Workbox, Create React App, vite-plugin-pwa и Serwist проходит без замечаний. Он никогда не запускает, не собирает и не размещает ваше приложение. Результат: BLOCK, REVIEW или NOT FLAGGED, с указанием файла, строки, причины и более безопасного подхода, и каждое правило ссылается на соответствующую документацию W3C, MDN, web.dev или Chrome. Секреты никогда не выводятся.

Что проверяется

BLOCK (исправить до выпуска)

  • W01: манифест, который не является корректным JSON (запятая в конце, комментарий, одинарные кавычки), не является объектом или сохранён в UTF-16
  • W02: start_url вне scope (включая "/app" при scope "/app/"), либо start_url или scope на localhost
  • W03: маршруты, которые в режиме онлайн отвечают на URL сессии, токена или выхода либо на данные аккаунта, профиля, корзины или оформления заказа из сохранённой копии
  • W04: importScripts() по http:// или вызов внутри обработчика fetch, message или другого события
  • W05: event.respondWith() или первый event.waitUntil(), вызванный после await или в колбэке then()
  • W06: один и тот же URL дважды в списке cache.addAll(), в том числе записанный как ./index.html и index.html (установка завершается ошибкой)

REVIEW (проверить перед релизом)

  • W11: манифесты, для которых Chromium не предложит установку (нет имени, нет иконки 144px или больше, режим отображения, не допускающий установку, prefer_related_applications)
  • W12: нет иконки maskable или иконки с purpose "any maskable"
  • W13: манифесты без id
  • W14: страницы или файлы .html, отдаваемые по стратегии cache-first
  • W15: версионированные кэши, которые никогда не удаляются
  • W16: безусловный skipWaiting() в воркере, который предварительно кэширует приложение, включая поведение next-pwa по умолчанию
  • W17: ответы API, отдаваемые через CacheFirst, CacheOnly или StaleWhileRevalidate (и dataGroups в Angular со стратегией performance по умолчанию), а также URL сессии или токена, сохраняемые для офлайн-использования
  • W18: обработчики fetch, которые сохраняют каждый ответ через cache.put()
  • W19: регистрации service worker, scope которых не охватывает страницы приложения или требует заголовка Service-Worker-Allowed

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)
  • Руководство по правилам с причиной, более безопасным подходом и ссылкой на официальный источник для каждого правила
  • Рискованный и безопасный примеры проектов (статический сайт с написанным вручную service worker и магазин на Vite с vite-plugin-pwa) и реальный отчёт сканера по рискованному

Ограничения

Сканер читает текст файлов и отслеживает между файлами лишь немногие факты (манифесты, на которые ссылаются страницы, заголовок Service-Worker-Allowed в конфигурациях сервера, autoUpdate в vite-plugin-pwa). Сопоставители, определённые в другом файле, минифицированные или сгенерированные service worker, файлы иконок, HTTPS и HTTP-заголовки, которые отправляет ваш сервер, не проверяются, а кэширование приватных URL в написанных вручную обработчиках fetch отмечается только как замечания cache-first или «кэшировать всё». Режим autoUpdate в vite-plugin-pwa и шаблон Serwist, которые намеренно выбирают немедленные обновления, не отмечаются правилом W16. NOT FLAGGED не является гарантией.

Содержимое

Один ZIP-файл с 20 файлами: SKILL.md, сканер в scripts/ (7 файлов Python), references/rules.md (каждое правило с причиной и более безопасным подходом) и examples/ (10 файлов примеров плюс report.md, реальный вывод сканера для рискованного примера).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами на Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно с Python 3.9 или новее, ничего не нужно устанавливать. Они только читают ваши файлы: без доступа к сети, ничего никуда не отправляется.

Что вы получите

1 файл · 53.05 KB

  • pwa-manifest-sw-check-1.0.0.zipZIP · 53.05 KB
ЛицензияКоммерческое использование разрешено
Проверка пакетаПройдена

Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.

Опубликовано12 нояб. 2026 г.
Размер файла53.05 KB
Формат файлаZIP
Версияv1.0

Теги

pwaservice-workerworkboxweb-manifestfrontendai agent skill
R
RR HH

Частые вопросы

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 53.05 KB.

Обновления бесплатны?

Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.

Цена

$5.00