Skip to content

fix(deploy): stop Nitro from publishing the Vite SPA index.html - #1716

Closed
gregnazario wants to merge 2 commits into
mainfrom
greg/fix-vercel-spa-index-html-b2b8
Closed

fix(deploy): stop Nitro from publishing the Vite SPA index.html#1716
gregnazario wants to merge 2 commits into
mainfrom
greg/fix-vercel-spa-index-html-b2b8

Conversation

@gregnazario

@gregnazario gregnazario commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

The previous Vercel MIME-type fix (framework: tanstack-start) still left production serving the Vite dev shell. After that deploy, https://explorer-aptoslabs.vercel.app/ logged:

Loading module from “…/app/client.tsx” was blocked because of a disallowed MIME type (“text/html”).
explorer-aptoslabs.vercel.app:135:49
SW registered: https://explorer-aptoslabs.vercel.app/

Line 135 is the <script type="module" src="/app/client.tsx"> tag in repo index.html (including the comment from the first fix). SW registered: comes from that same shell, not from TanStack Start SSR.

Root cause

Nitro treats root index.html as renderer.template whenever that file exists:

  1. Static copy — the client rollup input defaulted to that template. With appType: "custom" it was copied into .vercel/output/static untransformed. Vercel’s { handle: "filesystem" } then served it for /.
  2. Server function — because a template was set, Nitro did not wire TanStack Start’s ssr-renderer. The /__server catch-all was renderer-template, which returns the same SPA HTML. Even after deleting the static file, / would still load /app/client.tsx.

A local VERCEL=1 pnpm build after this change confirms:

  • no .vercel/output/static/index.html
  • /__server uses _chunks/ssr-renderer.mjs_ssr/ssr.mjs (createStartHandler, markdown negotiation)
  • hashed /assets/client-*.js is emitted
  • no /app/client.tsx in the function bundle

Fix

  • Set the client rollup/rolldown input to app/client.tsx.
  • Set Nitro renderer: false so Start SSR is the catch-all (not renderer-template).
  • Strip leftover index.html / .gz / .br from dist, .output/public, and .vercel/output/static.
  • Move PWA service-worker registration from index.html into the hashed client bundle.

Operator note

In the Vercel project, Framework Preset must be TanStack Start and Output Directory must be empty (not dist). vercel.json still does not set outputDirectory; a dashboard leftover of dist republishes a static Vite tree and drops the Nitro server function.

No Vercel Edge Functions / Edge Middleware. SSR remains Nitro on Vercel Node serverless.

Open in Web Open in Cursor 

Nitro defaults the client rollup input to renderer.template (index.html).
With appType custom that file is copied into .vercel/output/static untransformed,
so Vercel filesystem handling serves /app/client.tsx and browsers reject the HTML
MIME type. Point the client build at app/client.tsx, strip leftover SPA shells,
and register the PWA service worker from the hashed client bundle.

Co-authored-by: greg <greg@gnazar.io>
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
explorer Ready Ready Preview Aug 24, 2026 11:09pm

Request Review

@netlify

netlify Bot commented Aug 24, 2026

Copy link
Copy Markdown

👷 Deploy Preview for aptos-explorer processing.

Name Link
🔨 Latest commit cfb4d6d
🔍 Latest deploy log https://app.netlify.com/projects/aptos-explorer/deploys/6a8ccefeda093000083fa29f

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 8.19MB (95.28%) ⬆️⚠️, exceeding the configured threshold of 5%.

Bundle name Size Change
aptos-explorer-client-esm 6.48MB 349 bytes (0.01%) ⬆️
aptos-explorer-server-esm 8.32MB 8.19MB (6067.21%) ⬆️⚠️

Affected Assets, Files, and Routes:

view changes for bundle: aptos-explorer-client-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/index-*.js 349 bytes 223.94kB 0.16%
assets/validators-*._tab-C5MklnyQ.js (New) 128 bytes 128 bytes 100.0% 🚀
assets/validators-*._tab-BjrdiLTD.js (Deleted) -128 bytes 0 bytes -100.0% 🗑️

Files in assets/index-*.js:

  • ./app/client.tsx → Total Size: 220 bytes

  • ./app/utils/registerServiceWorker.ts → Total Size: 890 bytes

view changes for bundle: aptos-explorer-server-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
_libs/@aptos-connect/wallet-adapter-plugin+[...].mjs (New) 3.03MB 3.03MB 100.0% 🚀
_libs/@mui/material+[...].mjs (New) 773.63kB 773.63kB 100.0% 🚀
_libs/@tanstack/react-router+[...].mjs (New) 628.99kB 628.99kB 100.0% 🚀
_libs/chart.js.mjs (New) 353.08kB 353.08kB 100.0% 🚀
_ssr/txn._txnHashOrVersion._tab-QkbdiqSa.mjs (New) 345.49kB 345.49kB 100.0% 🚀
_ssr/Index-CZrrHy7N.mjs (New) 267.01kB 267.01kB 100.0% 🚀
_ssr/ssr.mjs (New) 234.56kB 234.56kB 100.0% 🚀
_libs/@mui/icons-material+[...].mjs (New) 203.85kB 203.85kB 100.0% 🚀
_ssr/MapImpl-DI2feeRo.mjs (New) 203.28kB 203.28kB 100.0% 🚀
_libs/@aptos-labs/wallet-adapter-core+[...].mjs (New) 126.7kB 126.7kB 100.0% 🚀
_ssr/router-BRqH-GZF.mjs (New) 113.91kB 113.91kB 100.0% 🚀
_ssr/client-DpU8D6-x.mjs (New) 109.11kB 109.11kB 100.0% 🚀
_libs/date-fns.mjs (New) 105.11kB 105.11kB 100.0% 🚀
_ssr/ResourceDataView-B7maLotW.mjs (New) 86.12kB 86.12kB 100.0% 🚀
_libs/uiw__react-json-view.mjs (New) 85.01kB 85.01kB 100.0% 🚀
_libs/react-hook-form.mjs (New) 84.11kB 84.11kB 100.0% 🚀
_ssr/validators._tab-Bshth9yI.mjs (New) 72.98kB 72.98kB 100.0% 🚀
index.mjs -5 bytes 71.67kB -0.01%
_ssr/validator._address-QkWoYKEO.mjs (New) 71.19kB 71.19kB 100.0% 🚀
_libs/tanstack__query-core.mjs (New) 69.73kB 69.73kB 100.0% 🚀
_libs/pako.mjs (New) 67.55kB 67.55kB 100.0% 🚀
_ssr/releases._tab-IN9aARVD.mjs (New) 63.38kB 63.38kB 100.0% 🚀
_libs/highlight.js.mjs (New) 57.04kB 57.04kB 100.0% 🚀
_ssr/searchUtils-CEx8awwP.mjs (New) 53.37kB 53.37kB 100.0% 🚀
_libs/@aptos-labs/wallet-adapter-react+[...].mjs (New) 50.96kB 50.96kB 100.0% 🚀
_libs/@tanstack/react-virtual+[...].mjs (New) 42.73kB 42.73kB 100.0% 🚀
_ssr/constants-BI6nmNwe.mjs (New) 40.85kB 40.85kB 100.0% 🚀
_libs/react-syntax-highlighter.mjs (New) 37.64kB 37.64kB 100.0% 🚀
_ssr/ValidatorStatusIcon-B6eTP_2G.mjs (New) 36.61kB 36.61kB 100.0% 🚀
_ssr/TransactionsTable-CKZWOP0Z.mjs (New) 33.9kB 33.9kB 100.0% 🚀
_ssr/fungible_asset._address._tab-bxuA3fJ4.mjs (New) 33.22kB 33.22kB 100.0% 🚀
_libs/@emotion/react+[...].mjs (New) 33.04kB 33.04kB 100.0% 🚀
_ssr/run-script-DRJ9Rdwv.mjs (New) 31.74kB 31.74kB 100.0% 🚀
_libs/@emotion/cache+[...].mjs (New) 30.13kB 30.13kB 100.0% 🚀
_ssr/coin._struct._tab-DS4yhwEp.mjs (New) 28.48kB 28.48kB 100.0% 🚀
_ssr/coins-nCD6AK0R.mjs (New) 26.88kB 26.88kB 100.0% 🚀
_ssr/token._tokenId._tab-BjbbHnXc.mjs (New) 23.87kB 23.87kB 100.0% 🚀
_libs/h3+rou3+srvx.mjs 475 bytes 23.05kB 2.1%
_ssr/utils-3RCJeE5K.mjs (New) 20.77kB 20.77kB 100.0% 🚀
_ssr/transactions-BnRwii4d.mjs (New) 20.18kB 20.18kB 100.0% 🚀
_libs/diff.mjs (New) 19.57kB 19.57kB 100.0% 🚀
_ssr/WalletConnector-Di6Mb7kk.mjs (New) 18.07kB 18.07kB 100.0% 🚀
_ssr/analytics-C-FjsBBh.mjs (New) 18.05kB 18.05kB 100.0% 🚀
_libs/noble__hashes.mjs (New) 17.82kB 17.82kB 100.0% 🚀
_ssr/move_decompiler_wasm-W8WOL_GU.mjs (New) 16.17kB 16.17kB 100.0% 🚀
_ssr/GeneralTableRow-DhrePl5S.mjs (New) 16.07kB 16.07kB 100.0% 🚀
_ssr/usePageMetadata-C-9beapp.mjs (New) 15.74kB 15.74kB 100.0% 🚀
_ssr/settings-DSwoQCWd.mjs (New) 15.5kB 15.5kB 100.0% 🚀
_ssr/verification-scLf4Pa6.mjs (New) 14.73kB 14.73kB 100.0% 🚀
_ssr/PageHeader-DmbNcxP6.mjs (New) 14.36kB 14.36kB 100.0% 🚀
_ssr/blocks-C5HACOTM.mjs (New) 14.15kB 14.15kB 100.0% 🚀
_ssr/Card-BvdW-1kV.mjs (New) 13.61kB 13.61kB 100.0% 🚀
_tanstack-start-manifest_v-Dsqix64M.mjs (New) 13.58kB 13.58kB 100.0% 🚀
_ssr/routes-COda7phq.mjs (New) 13.45kB 13.45kB 100.0% 🚀
_libs/scure__base.mjs (New) 13.19kB 13.19kB 100.0% 🚀
_ssr/TransactionFunction-DH0kP1T1.mjs (New) 12.99kB 12.99kB 100.0% 🚀
_libs/kurkle__color.mjs (New) 11.76kB 11.76kB 100.0% 🚀
_ssr/block._height._tab-DqZxbphX.mjs (New) 11.38kB 11.38kB 100.0% 🚀
_ssr/helpers-CalqjTYm.mjs (New) 11.31kB 11.31kB 100.0% 🚀
_libs/tanstack__history.mjs (New) 10.67kB 10.67kB 100.0% 🚀
_ssr/FunctionFilter-D_g9X2c9.mjs (New) 10.53kB 10.53kB 100.0% 🚀
_libs/babel__runtime.mjs (New) 10.47kB 10.47kB 100.0% 🚀
_libs/emotion__styled.mjs (New) 9.94kB 9.94kB 100.0% 🚀
_ssr/useGetConfidentialFASupply-B8UJn4A_.mjs (New) 9.89kB 9.89kB 100.0% 🚀
_libs/tanstack__react-query.mjs (New) 9.57kB 9.57kB 100.0% 🚀
_libs/highlightjs-move.mjs (New) 9.54kB 9.54kB 100.0% 🚀
_ssr/JsonViewCard-IIohx8d2.mjs (New) 7.07kB 7.07kB 100.0% 🚀
_ssr/useGetAccountTokens-X01Istox.mjs (New) 5.59kB 5.59kB 100.0% 🚀
_ssr/aptosBrandColors-Bdu9y7mP.mjs (New) 5.33kB 5.33kB 100.0% 🚀
_libs/emotion__is-prop-valid.mjs (New) 5.05kB 5.05kB 100.0% 🚀
_ssr/VirtualizedTableBody-DutOkQIa.mjs (New) 4.87kB 4.87kB 100.0% 🚀
_libs/lowlight.mjs (New) 4.61kB 4.61kB 100.0% 🚀
_ssr/useSubmitTransaction-DO1BH8G8.mjs (New) 4.57kB 4.57kB 100.0% 🚀
_ssr/Banner-DpFsaXjo.mjs (New) 4.36kB 4.36kB 100.0% 🚀
_libs/react-chartjs-2.mjs (New) 3.93kB 3.93kB 100.0% 🚀
_ssr/Error-BupVCnh6.mjs (New) 3.93kB 3.93kB 100.0% 🚀
_libs/fault+format.mjs (New) 3.35kB 3.35kB 100.0% 🚀
_ssr/settings-B-SF-898.mjs (New) 3.16kB 3.16kB 100.0% 🚀
_ssr/createClient-ysD46sT8.mjs (New) 3.14kB 3.14kB 100.0% 🚀
_ssr/StyledTabs-PD2rzIhh.mjs (New) 2.86kB 2.86kB 100.0% 🚀
_ssr/ContentRow-weyYR7zm.mjs (New) 2.71kB 2.71kB 100.0% 🚀
_libs/es-toolkit.mjs (New) 2.71kB 2.71kB 100.0% 🚀
_ssr/TableTooltip-B7R_bhQR.mjs (New) 2.68kB 2.68kB 100.0% 🚀
_libs/js-cookie.mjs (New) 2.65kB 2.65kB 100.0% 🚀
_ssr/useGetAccountResource-6O8s8-3O.mjs (New) 2.49kB 2.49kB 100.0% 🚀
_libs/download__blockies.mjs (New) 2.42kB 2.42kB 100.0% 🚀
_ssr/NavigationPending-CjmeMtDh.mjs (New) 2.24kB 2.24kB 100.0% 🚀
_ssr/releases._tab-MkQlD871.mjs (New) 2.15kB 2.15kB 100.0% 🚀
_ssr/TimestampValue-QcRB15Lx.mjs (New) 2.12kB 2.12kB 100.0% 🚀
_ssr/CurrencyValue-rYznrXbl.mjs (New) 1.96kB 1.96kB 100.0% 🚀
_runtime.mjs (New) 1.93kB 1.93kB 100.0% 🚀
_ssr/rolldown-runtime-DC62tzP2.mjs (New) 1.5kB 1.5kB 100.0% 🚀
_libs/emotion__hash.mjs (New) 1.46kB 1.46kB 100.0% 🚀
_ssr/useGetModulePublishHistory-DX-6FlVG.mjs (New) 1.45kB 1.45kB 100.0% 🚀
_ssr/account._address-DADeHc-5.mjs (New) 1.45kB 1.45kB 100.0% 🚀
_ssr/object._address-J6HtXcZp.mjs (New) 1.44kB 1.44kB 100.0% 🚀
_ssr/account._address.modules-8XJldFo8.mjs (New) 1.41kB 1.41kB 100.0% 🚀
_ssr/object._address.modules-L23_49D8.mjs (New) 1.4kB 1.4kB 100.0% 🚀
_ssr/CodeLineBox-osHvhtRC.mjs (New) 1.39kB 1.39kB 100.0% 🚀
_ssr/queries-DGu5Q4FF.mjs (New) 1.31kB 1.31kB 100.0% 🚀
_ssr/txn._txnHashOrVersion._tab-DDTpC6q8.mjs (New) 1.29kB 1.29kB 100.0% 🚀
_ssr/TotalTransactions-CPUZMNhm.mjs (New) 1.28kB 1.28kB 100.0% 🚀
_ssr/account._address._tab-kTd0LC6r.mjs (New) 1.25kB 1.25kB 100.0% 🚀
_ssr/token._tokenId-D5O7sC00.mjs (New) 1.25kB 1.25kB 100.0% 🚀
_ssr/block._height._tab-bpGjCkdp.mjs (New) 1.23kB 1.23kB 100.0% 🚀
_chunks/ssr-renderer.mjs (New) 1.23kB 1.23kB 100.0% 🚀
_ssr/useGetBlock-QdlSXVP9.mjs (New) 1.19kB 1.19kB 100.0% 🚀
_ssr/useGetCoinSupplyLimit-Li3nQC7C.mjs (New) 1.15kB 1.15kB 100.0% 🚀
_ssr/txn._txnHashOrVersion-DI467_Bh.mjs (New) 1.14kB 1.14kB 100.0% 🚀
_ssr/LoadingModal-BkS8K4mB.mjs (New) 1.12kB 1.12kB 100.0% 🚀
_ssr/fungible_asset._address-CWdjDZ6A.mjs (New) 1.1kB 1.1kB 100.0% 🚀
_ssr/block._height-D5oO7cBh.mjs (New) 1.05kB 1.05kB 100.0% 🚀
_ssr/coin._struct-Bw22UnMG.mjs (New) 1.04kB 1.04kB 100.0% 🚀
_ssr/useGetValidatorSet-Cqbs0NK9.mjs (New) 1.0kB 1.0kB 100.0% 🚀
_ssr/useGraphqlClient-ChfBaE_K.mjs (New) 994 bytes 994 bytes 100.0% 🚀
_ssr/validators-Btep-tbi.mjs (New) 952 bytes 952 bytes 100.0% 🚀
_ssr/releases-N-k6D9HE.mjs (New) 947 bytes 947 bytes 100.0% 🚀
_ssr/token._tokenId._tab-Hd1ZgGev.mjs (New) 931 bytes 931 bytes 100.0% 🚀
_ssr/ContentBox-BloGqHl5.mjs (New) 907 bytes 907 bytes 100.0% 🚀
_ssr/object._address.modules._-BKR_XM4V.mjs (New) 833 bytes 833 bytes 100.0% 🚀
_ssr/account._address.modules._-Dxb6sDwD.mjs (New) 812 bytes 812 bytes 100.0% 🚀
_ssr/useViewFunction-CdoHDdXy.mjs (New) 806 bytes 806 bytes 100.0% 🚀
_ssr/useGetAccountResources-Ciu2MGDd.mjs (New) 759 bytes 759 bytes 100.0% 🚀
_ssr/EmptyValue-DbKdz0Kb.mjs (New) 751 bytes 751 bytes 100.0% 🚀
_ssr/validators-enhanced._tab-CRWBypuG.mjs (New) 707 bytes 707 bytes 100.0% 🚀
_ssr/useGetTransaction-Dikw0FA8.mjs (New) 686 bytes 686 bytes 100.0% 🚀
_ssr/validators-enhanced-ClPsVMtD.mjs (New) 679 bytes 679 bytes 100.0% 🚀
_ssr/deployments-BbiHZ8jd.mjs (New) 658 bytes 658 bytes 100.0% 🚀
_ssr/aips-DQqmbA-i.mjs (New) 633 bytes 633 bytes 100.0% 🚀
_ssr/confidentialAssetViews-2ynUj9-q.mjs (New) 622 bytes 622 bytes 100.0% 🚀
_ssr/useGetFaMetadata-DbFVrDtW.mjs (New) 584 bytes 584 bytes 100.0% 🚀
_ssr/fungible_asset._address._tab-L6QJJzNa.mjs (New) 569 bytes 569 bytes 100.0% 🚀
_ssr/GeneralTableBody-BVumoOFJ.mjs (New) 567 bytes 567 bytes 100.0% 🚀
_ssr/object._address._tab-L0BlzNVh.mjs (New) 545 bytes 545 bytes 100.0% 🚀
_ssr/validator._address-ColtJ37t.mjs (New) 539 bytes 539 bytes 100.0% 🚀
_ssr/coin._struct._tab-eCiXwje3.mjs (New) 536 bytes 536 bytes 100.0% 🚀
_ssr/TooltipTypography-CD9JEbLA.mjs (New) 531 bytes 531 bytes 100.0% 🚀
_ssr/validators._tab-Cf6KkA6z.mjs (New) 530 bytes 530 bytes 100.0% 🚀
_ssr/transactions-Bpjx3anh.mjs (New) 521 bytes 521 bytes 100.0% 🚀
_ssr/verification-DDz_NeVu.mjs (New) 521 bytes 521 bytes 100.0% 🚀
_ssr/run-script-B3hZH5KA.mjs (New) 515 bytes 515 bytes 100.0% 🚀
_ssr/analytics-BjSovIoS.mjs (New) 512 bytes 512 bytes 100.0% 🚀
_ssr/blocks-CtqnWrFy.mjs (New) 503 bytes 503 bytes 100.0% 🚀
_ssr/coins-B-2AGYmT.mjs (New) 500 bytes 500 bytes 100.0% 🚀
_ssr/routes-CyemOr2O.mjs (New) 499 bytes 499 bytes 100.0% 🚀
_ssr/account._address.modules-C6v5OMnH.mjs (New) 496 bytes 496 bytes 100.0% 🚀
_ssr/object._address._tab-DMk3TbVb.mjs (New) 496 bytes 496 bytes 100.0% 🚀
_ssr/fungible_asset._address-BFvGUFKk.mjs (New) 494 bytes 494 bytes 100.0% 🚀
_ssr/object._address.modules-Bc52Y0Jm.mjs (New) 494 bytes 494 bytes 100.0% 🚀
_ssr/txn._txnHashOrVersion-Cpu18YWw.mjs (New) 490 bytes 490 bytes 100.0% 🚀
_ssr/account._address-CtIVQlby.mjs (New) 480 bytes 480 bytes 100.0% 🚀
_ssr/object._address-DHiumXSl.mjs (New) 478 bytes 478 bytes 100.0% 🚀
_ssr/token._tokenId-BsaE2bDj.mjs (New) 476 bytes 476 bytes 100.0% 🚀
_ssr/block._height-ByVnsgG-.mjs (New) 474 bytes 474 bytes 100.0% 🚀
_ssr/coin._struct-CHklGabL.mjs (New) 472 bytes 472 bytes 100.0% 🚀
_ssr/validators-HsdYqErr.mjs (New) 468 bytes 468 bytes 100.0% 🚀
_ssr/releases-DDnrhR2V.mjs (New) 464 bytes 464 bytes 100.0% 🚀
_ssr/account._address.modules._-BaQ-bhWr.mjs (New) 461 bytes 461 bytes 100.0% 🚀
_ssr/object._address.modules._-8EkpA6PS.mjs (New) 458 bytes 458 bytes 100.0% 🚀
_libs/emotion__serialize.mjs (New) 325 bytes 325 bytes 100.0% 🚀
_ssr/useGoogleTagManager-CcxpCyrr.mjs (New) 296 bytes 296 bytes 100.0% 🚀
_ssr/account._address._tab-BlW0brN1.mjs (New) 280 bytes 280 bytes 100.0% 🚀
_ssr/useGetInMainnet-BqfMinBL.mjs (New) 262 bytes 262 bytes 100.0% 🚀
_libs/tanstack__router-core.mjs (New) 240 bytes 240 bytes 100.0% 🚀
_ssr/empty-plugin-adapters-YVAYBksB.mjs (New) 230 bytes 230 bytes 100.0% 🚀
_ssr/useLogEventWithBasic-BhFlXnvw.mjs (New) 229 bytes 229 bytes 100.0% 🚀
_ssr/validators-enhanced._tab-CoAbchLT.mjs (New) 228 bytes 228 bytes 100.0% 🚀
_ssr/validators-enhanced-B9KEfZUm.mjs (New) 218 bytes 218 bytes 100.0% 🚀
_ssr/deployments-dI6UA0_4.mjs (New) 202 bytes 202 bytes 100.0% 🚀
_ssr/aips-C7ZjWa5U.mjs (New) 188 bytes 188 bytes 100.0% 🚀
_ssr/start-hzfQhiaS.mjs (New) 140 bytes 140 bytes 100.0% 🚀
_chunks/renderer-template.mjs (Deleted) -6.4kB 0 bytes -100.0% 🗑️

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 36.63%. Comparing base (3f34607) to head (cfb4d6d).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1716      +/-   ##
==========================================
+ Coverage   36.39%   36.63%   +0.24%     
==========================================
  Files         204      205       +1     
  Lines        9692     9729      +37     
  Branches     3798     3786      -12     
==========================================
+ Hits         3527     3564      +37     
  Misses       6149     6149              
  Partials       16       16              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

index.html was still Nitro's catch-all renderer-template, so /__server
returned the Vite SPA shell even after stripping static index.html.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants