Введение
ranklint — SEO-тулкит для Nuxt 4 и SEO-линтер для CI, которому всё равно, на чём собран сайт.
Зависимости строго вниз: @ranklint/core не знает ни про Nuxt, ни про Playwright — загрузку страниц описывает интерфейс PageFetcher (реализации: HttpFetcher — голый fetch, PlaywrightFetcher — реальный Chrome). Всё крутится вокруг четырёх типов: PageSnapshot (html после гидрации + ssrHtml до JS, статус, заголовки, ttfb, ссылки, картинки во вьюпорте) → Check → Issue (checkId, severity, message, url, selector, suggestion, docs) → Report (formatVersion: 1).
Каждый блок функциональности отключается — выключенный код вообще не регистрируется. Клиентский вклад модуля в бандл — 485 байт gzip (лимит 5 KB охраняется тестом в CI).
Пакеты
| Пакет | Назначение |
|---|---|
@ranklint/nuxt | Модуль Nuxt 4: sitemap, robots, useJsonLd, DevTools-таб |
@ranklint/cli | Команда ranklint: краулер (Playwright), Lighthouse, monitor, watch |
@ranklint/core | Движок: типы, краулер, runner, конфиг, diff — без Nuxt и Playwright |
@ranklint/checks | 43 правила + Zod-схемы Schema.org |
@ranklint/reporters | markdown / junit / json / html / gitlab / github / sarif |
@ranklint/devtools | Vue-панель для Nuxt DevTools |
@ranklint/preset-default | Пресет «все встроенные правила» для extends |
ranklint | Алиас @ranklint/cli — npm i -D ranklint даёт бинарник ranklint |
Требования: Nuxt ^4.0.0, Node.js >= 20. Лицензия MIT.