通过 vite-ssr 在 Node.js 中实现 Vue 应用的服务端渲染
vitesse-ssr-template — Vue 启动器模板
作者 frandiox
基于 Vitesse 的 Vue + Vite 启动模板,通过 vite-ssr 在 Node.js 中实现服务端渲染,并预置了文件路由、组件自动导入、布局、PWA、Windi CSS、i18n 与 Markdown 等约定。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
基于文件系统的路由与页面布局系统
组件自动导入,无需手动注册
内置 PWA、Windi CSS、Iconify 图标与 Vue I18n
支持 Markdown 作为组件及在 Markdown 中使用组件
附带 Vercel 部署配置与本地预览脚本
模板详细介绍
vitesse-ssr-template 是 frandiox 维护的 Vue + Vite 启动模板,在 antfu 的 Vitesse 基础上接入 vite-ssr,为 Node.js 环境提供 SSR 能力。仓库采用 MIT 许可,附带 Vercel 演示站,可用于快速搭建带服务端渲染的 Vue 应用。
模板预置了较完整的前端工程约定:基于文件系统的路由(vite-plugin-pages)、页面布局(vite-plugin-vue-layouts)、组件自动导入(vite-plugin-components)、PWA(vite-plugin-pwa)、按需生成的 Windi CSS、Iconify 图标、Vue I18n 国际化、Markdown 支持、TypeScript 与 ESLint 配置。开发时可用 pnpm dev 启动 SSR 模式,或用 pnpm dev:spa 仅运行 SPA。
使用前需注意:模板作者明确说明其配置带有较强主观偏好,README 也列出了社区维护的变体(vitesse-lite、vitesse-addons)供不同偏好选择。模板要求使用 pnpm 作为包管理器,部署路径以 Vercel 为主,构建产物会部分移动到 serverless 目录。仓库最后更新于 2021 年,依赖版本与工具链状态需以实际依赖清单为准。
适合你的项目吗?
适用场景
- 需要为 Vue 应用加入服务端渲染的起步项目
- 希望直接使用文件路由、布局与组件自动导入等约定的新项目
- 需要 PWA、国际化或 Markdown 内容支持的 Vue 站点
- 计划部署到 Vercel 并复用其 serverless 配置的工程
适合人群
- 熟悉 Vue 与 Vite、接受较强工程约定的开发者
- 使用 pnpm 作为包管理器的团队
- 需要 SSR 且以 Node.js 为运行环境的项目
- 希望以 Vercel 为主要部署目标的站点
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
可通过 GitHub 模板生成仓库,或用 npx degit frandiox/vitesse-ssr-template my-vitesse-app 克隆到本地
- 2
需先安装 pnpm,再执行 pnpm i 安装依赖
- 3
使用 pnpm dev 启动 SSR 开发模式,pnpm dev:spa 启动无 SSR 的 SPA 模式
- 4
构建使用 pnpm build,产物在 dist,部分文件会移动到 serverless 供部署
- 5
使用前按 README 检查清单更新 package.json 名称、LICENSE 作者、App.vue 标题、favicon,并清理示例路由与 README
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 使用该模板需以 pnpm 作为包管理器;若未安装 pnpm,需先通过 npm 全局安装 pnpm 才能安装依赖。
- README 给出的部署流程依赖 Vercel 平台及其 CLI,需注册 Vercel 账号并安装其命令行工具;部署到该平台可能受其服务条款与费用政策约束。
- 模板仓库的 .github 目录包含资助(funding)信息,使用前需按检查清单移除,以免保留原作者的赞助配置。
- 使用模板时需按检查清单将 LICENSE 中的作者署名改为自己的信息,以符合 MIT 许可对版权声明保留与替换的要求。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
pnpm i # If you don't have pnpm installed, run: npm install -g pnpm
README 原文
Go to [Vercel](https://vercel.com) and install its CLI. Then:
README 原文
Remove the `.github` folder which contains the funding info
README 原文
https://github.com/frandiox/vitesse-ssr-template/blob/master/LICENSEhttps://github.com/frandiox/vitesse-ssr-template/blob/master/README.mdChange the author name in `LICENSE`
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 81 / 100
- 技术栈
- Vue · Vite
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2021-11-30
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Vue。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: b0d1e884e0abbc9250241e57055ebb8b47072e67246ffcc9c80427c8afcbfc1d
2026-10-02T11:38:40.296Z
来源文件 / 仓库# Vitesse SSR > Vue + Vite + SSR template based on [@antfu](https://github.com/antfu)'s [Vitesse](https://github.com/antfu/vitesse) with [`vite-ssr`](https://github.com/frandiox/vite-ssr). <p align='center'> <a href="https://vitesse-ssr.vercel.app/">Live Demo</a> </p> ## Features - ⚡️ [Vue 3](https://github.com/vuejs/vue-next), [Vite 2](https://github.com/vitejs/vite), [pnpm](https://pnpm.js.org/), [ESBuild](https://github.com/evanw/esbuild) - born with fastness - 🗂 [File based routing](./src/pages) - 📦 [Components auto importing](./src/components) - 📑 [Layout system](./src/layouts) - 📲 [PWA](https://github.com/antfu/vite-plugin-pwa) - 🎨 [Windi CSS](https://github.com/windicss/windicss) - on-demand Tailwind CSS with speed - 😃 [Use icons from any icon sets, with no compromise](./src/components) - 🌍 [I18n ready](./src/i18n/translations) - 🗒 [Markdown Support](https://github.com/antfu/vite-plugin-md) - 🔥 Use the [new `<script setup>` style](https://github.com/vuejs/rfcs/pull/227) - 🖨 Server-side rendering (SSR) in Node.js via [vite-ssr](https://github.com/frandiox/vite-ssr) - 🦾 TypeScript, of course - ☁️ Deploy on Vercel, minimal [config](./serverless/vercel.json) <br> ## Pre-packed ### UI Frameworks - [Windi CSS](https://github.com/windicss/windicss) (On-demand [TailwindCSS](https://tailwindcss.com/)) - lighter and faster, with a bundle additional features! - [Windi CSS Typography](https://windicss.netlify.app/guide/plugins.html#typography) - similar to [Tailwind CSS Typography](https://github.com/tailwindlabs/tailwindcss-typograph) but for Windi CSS ### Icons - [Iconify](https://iconify.design) - use icons from any icon sets [🔍Icônes](https://icones.netlify.app/) - [`vite-plugin-icons`](https://github.com/antfu/vite-plugin-icons) - icons as Vue components ### Plugins - [Vue Router](https://github.com/vuejs/vue-router) - [`vite-plugin-pages`](https://github.com/hannoeru/vite-plugin-pages) - file system based routing - [`vite-plugin-vue-layouts`](https://github.com/JohnCampionJr/vite-plugin-vue-layouts) - layouts for pages - [`vite-plugin-components`](https://github.com/antfu/vite-plugin-components) - components auto import - [`vite-plugin-pwa`](https://github.com/antfu/vite-plugin-pwa) - PWA - [`vite-plugin-windicss`](https://github.com/antfu/vite-plugin-windicss) - WindiCSS support - [`vite-plugin-md`](https://github.com/antfu/vite-plugin-md) - Markdown as components / components in Markdown - [`markdown-it-prism`](https://github.com/jGleitz/markdown-it-prism) - [Prism](https://prismjs.com/) for syntax highlighting - [`prism-theme-vars`](https://github.com/antfu/prism-theme-vars) - customizable Prism.js theme using CSS variables - [Vue I18n](https://github.com/intlify/vue-i18n-next) - Internationalization - [`vite-plugin-vue-i18n`](https://github.com/intlify/vite-plugin-vue-i18n) - Vite plugin for Vue I18n - [VueUse](https://github.com/antfu/vueuse) - collection of useful composition APIs - [`@vueuse/head`](https://github.com/vueuse/head) - manipulate document head reactively ### Coding Style - Use Composition API with [`<script setup>` SFC](https://github.com/vuejs/rfcs/pull/227) - [ESLint](https://eslint.org/) with [@antfu/eslint-config-vue](https://github.com/antfu/eslint-config), single quotes, no semi. ### Dev tools - [TypeScript](https://www.typescriptlang.org/) - [pnpm](https://pnpm.js.org/) - fast, disk space efficient package manager - [`vite-ssr`](https://github.com/frandiox/vite-ssr) - Server-side rendering - [Vercel](https://vercel.com/) - deploy - [VS Code Extensions](./.vscode/extensions.json) - [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) - [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify) - [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) ## Variations As this template is strongly opinionated, the following provides a curated list for community maintained variations with different preferences and feature sets. Check them out as well. PR to add yours are also welcome! - [vitesse-lite](https://github.com/kn0wn/vitesse-lite) by [@kn0wn](https://github.com/kn0wn) - [vitesse-addons](https://github.com/JohnCampionJr/vitesse-addons) by [johncampionjr](https://github.com/johncampionjr) - additional options for integrations, including [Prettier](https://prettier.io) and [Storybook](https://storybook.js.org) ## Try it now! ### GitHub Template [Create a repo from this template on GitHub](https://github.com/frandiox/vitesse-ssr-template/generate). ### Clone to local If you prefer to do it manually with the cleaner git history ```bash npx degit frandiox/vitesse-ssr-template my-vitesse-app cd my-vitesse-app pnpm i # If you don't have pnpm installed, run: npm install -g pnpm ``` ## Checklist When you use this template, try follow the checklist to update your info properly - [ ] Add a `name` field in `package.json` - [ ] Change the author name in `LICENSE` - [ ] Change the title in `App.vue` - [ ] Change the favicon in `public` - [ ] Remove the `.github` folder which contains the funding info - [ ] Clean up the READMEs and remove routes And, enjoy :) ## Usage ### Development Just run and visit http://localhost:3333 ```bash pnpm dev # SSR development pnpm dev:spa # SPA without SSR ``` ### Build To build the App, run ```bash pnpm build ``` And you will see the generated files in `dist`, and some of these files will be moved to `serverless` for deployment. ### Deploy on Vercel Go to [Vercel](https://vercel.com) and install its CLI. Then: ```bash pnpm preview # Simulate Vercel environment locally pnpm deploy pnpm deploy:prod ``` ## Why I have created several Vite apps recently. Setting the configs up is kinda the bottleneck for me to make the ideas simply come true within a very short time. So I made this starter template for myself to create apps more easily, along with some good practices that I have learned from making those apps. It's strongly opinionated, but feel free to tweak it or even maintains your own forks. [(see community maintained variation forks)](#variations)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

vitesse
🏕 Opinionated Vite + Vue Starter Template
Vue · 启动器

vitesse-webext
⚡️ WebExtension Vite Starter Template
Vue · 启动器

laravel-vue-spa
A Laravel-Vue SPA starter kit.
Vue · 启动器

vue3-h5-template
vue3-h5-template 是一个面向移动端 H5 项目的启动模板,基于 Vue3、Vite 和 Vant4 构建,同时集成了 TypeScript、Tailwindcss、Pinia、Vue-router 等常用…
Vue · 启动器

tov-template
vite + vue3 + ts 开箱即用现代开发模板 | vite + vue3 + ts out-of-the-box modern development template
Vue · 启动器

shadcn-vue-landing-page
New design 🎉 Vue + Shadcn-vue + TypeScript + Tailwind. Landing page template ease-to-use
Vue · 企业官网
