
next-coverage: que APIs de Next.js usa a túa app
npx next-coverageMira que APIs de Next.js usa o teu proxecto, cales lle aplicarían e por que as demais quedan fóra.
Seccións
Resumo
Le un proxecto con App Router e reparte en catro grupos todas as APIs do framework que coñece. Non hai nota nin porcentaxe: 29 de 151 non é unha cualificación, e os catro recontos son a resposta.
- 29Úsasea API está no proxecto
- 1Aplicaríaas condicións están no código e a API non
- 8Non aplicadescartada, co motivo impreso
- 113Sen avaliarsen xuízo, desglosado por que
Aplicaría é unha oportunidade, non un defecto. Esta ferramenta nunca di que o teu código estea mal.
Le ficheiros fonte. Non constrúe a túa app, non a executa e non envía nada a ningures. Se atopa un build de produción, tamén o le e contrasta os dous.
Corrida de exemplo
next-coverage · Next.js 16.3.0-preview.10 · ~/next16-commerce1.2 s · 151 entradas examinadas
Executado contra aurorascharff/next16-commerce en 13d17c0f, sobre Next.js 16.3.0-preview.10. Todo o de abaixo está copiado desa corrida.
- 29Úsasea API está no proxecto
- 1Aplicaríaas condicións están no código e a API non
- 8Non aplicadescartada, co motivo impreso
- 113Sen avaliarsen xuízo, desglosado por que
29 of 30 evaluated APIs are in use.
Os 3 achados
declared here, and no invalidation names them anywhere in the project
a tag lets revalidateTag drop exactly these scopes, so a change reaches the page without waiting out the profile
products- features/product/product-queries.ts
these cache scopes inherit the default profile because they never set one
a profile sets how long the scope is fresh and how long it may be served stale, instead of the framework’s default
- features/category/components/Categories.tsx
- features/category/components/CategoryFilters.tsx
- features/category/components/FeaturedCategories.tsx
- e 8 máis
the project serves 7 pages and declares no sitemap
a sitemap file generates the XML from the routes, so crawlers find every page rather than the ones something links to
- app
Comprobado a man
features/product/product-queries.ts:47 — getProducts declares 'use cache', cacheLife('minutes') and cacheTag('products') features/product/components/{Product,ProductDetails}.tsx — cacheTag('product-' + productId) features/product/product-actions.ts:54 — setFeaturedProduct changes the featured product and calls revalidateTag('featured-product', 'max')
Nothing in the project ever names products or product-<id>.
Cambia o produto destacado e a portada actualízase ao instante, mentres a listaxe pode seguir servindo o anterior ata que caduque o perfil minutes.
Con cacheLife("minutes") pode ser perfectamente deliberado. A ferramenta repórtao como unha observación e esta páxina tamén.
Peso en cliente
- /all20 módulos
- /16 módulos
- /product/[id]15 módulos
- /cart12 módulos
- /user12 módulos
E 2 rutas máis, todas máis lixeiras ca estas.
nothing contrasted: no production build found at .next
Os catro grupos
- 29Úsasea API está no proxecto
- 1Aplicaríaas condicións están no código e a API non
- 8Non aplicadescartada, co motivo impreso
- 113Sen avaliarsen xuízo, desglosado por que
Só un grupo che pide algo. Aplicaría significa que as condicións que a API precisa xa están no código e a API non: merece unha ollada, nunca é un bug. O vermello da paleta resérvase para unha contradición de verdade, e esta corrida non ten ningunha.
O que se nega a xulgar
O número interesante é o máis grande: 113 entradas que non avaliou, desglosadas en vez de tragadas.
- 32 abstained
- 5 suggested on another entry
- 72 evaluated and unmatched
Absterse quere dicir que a evidencia non daba para responder nin unha cousa nin a outra. Unha ferramenta que nunca se abstén está adiviñando.
Modos
A corrida por defecto imprime o que pode argumentar: aquí 3 achados. Execútase sen flags.
--strict baixa o listón e engade as suxestións opcionais: 14 achados sobre o mesmo proxecto, no mesmo segundo.
npx next-coverage --strict --findings
65 suxestións opcionais retidas por defecto, e o informe dío en cada corrida en vez de escondelas. --findings imprime a lista; --json dá o informe enteiro.
13 restricións documentadas comprobadas, ningunha contradita.
Os dous modos len exactamente os mesmos ficheiros. --strict cambia o que se reporta, nunca o que se analiza.
Alcance e límites
- Le ficheiros. Non constrúe, non executa, non instala e non envía nada.
- Node.js 20.19+, Next.js 16.2+, App Router. Os proxectos con Pages Router quedan fóra.
- O contraste co build e o peso en cliente precisan un build de produción en
.next. Sen el dío, en vez de adiviñar. - Vai pola versión 0.1.0. En
0.xa saída do CLI e a forma do JSON poden cambiar entre menores, así que a corrida desta páxina leva a súa data. - Non é un linter. Non di nada sobre se o teu código é correcto, só sobre que parte do framework estás a usar.
Ligazóns
- github.com/xabierlameiro/next-coverageCódigo fonte, README e issues
- npmjs.com/package/next-coverageO paquete en npm
- npmx.dev/package/next-coverageTamaño de instalación, dependencias e descargas
- next-leakA outra ferramenta: a túa app ten fugas de memoria?
- Non estás de acordo cun grupo? Abre unha issue