Guide · Framework
Deploy VitePress to Novence
vitepress build writes .vitepress/dist. Pass that path — it is not auto-detected.
VitePress is a Vite-powered SSG. Default output is .vitepress/dist (or docs/.vitepress/dist if the source lives under docs/). That folder is not in the CLI auto-detect list.
Configure
Keep base: "/" and cleanUrls: false so generated links are /guide.html (or directory indexes if you configure that). cleanUrls: true expects a host rewrite Novence does not provide.
If your config sits in docs/.vitepress, the output is docs/.vitepress/dist — pass that exact path to deploy.
// .vitepress/config.ts
import { defineConfig } from "vitepress";
export default defineConfig({
title: "Docs",
base: "/",
cleanUrls: false,
});Build
npx vitepress build
npx vitepress build (add docs as the first arg when the site root is docs/). Confirm index.html inside the dist folder.
Deploy
npx novence deploy .vitepress/dist
npx novence deploy .vitepress/dist (or docs/.vitepress/dist). Omitting the path will not find this directory.
.vitepress/dist is not in the CLI auto-detect list. Pass it every time. Full CLI: /cli.
Caveats
- Not auto-detected by
novence deploy. cleanUrls: truewill 404 on refresh without directoryindex.htmlfiles.- VitePress Vue SFCs compile at build time; there is no Node SSR after upload.
FAQ
Where is the output if my markdown is in docs/?
docs/.vitepress/dist. Deploy that path: npx novence deploy docs/.vitepress/dist.
Can I enable cleanUrls?
Only if the build emits directory index.html files for each route. Default cleanUrls false is the safe option on Novence.
Is this the same as Vite?
VitePress uses Vite. The deploy folder is .vitepress/dist, not dist/. See /guides/vite for app builds.
Agents ship. Novence hosts.
Copy Prompt or get a key. Then npx novence deploy .vitepress/dist.