2020-08-10 02:43:04 +08:00
< p align = 'center' >
2022-02-17 21:05:01 +08:00
< img src = 'https://user-images.githubusercontent.com/11247099/154486817-f86b8f20-5463-4122-b6e9-930622e757f2.png' alt = 'Vitesse - Opinionated Vite Starter Template' width = '600' / >
2020-08-10 02:43:04 +08:00
< / p >
< p align = 'center' >
2021-01-07 13:50:13 +08:00
Mocking up web app with < b > Vitesse< / b > < sup > < em > (speed)< / em > < / sup > < br >
2020-08-10 02:43:04 +08:00
< / p >
< br >
< p align = 'center' >
2020-08-10 15:42:19 +08:00
< a href = "https://vitesse.netlify.app/" > Live Demo< / a >
2020-08-10 02:43:04 +08:00
< / p >
< br >
2022-01-25 22:13:42 +08:00
< p align = 'center' >
< b > English< / b > | < a href = "https://github.com/antfu/vitesse/blob/main/README.zh-CN.md" > 简体中文< / a >
2022-08-21 21:06:48 +08:00
<!-- Contributors: Thanks for getting interested, however we DON'T accept new transitions to the README, thanks. -->
2022-01-25 22:13:42 +08:00
< / p >
< br >
2022-05-05 05:09:13 +08:00
2020-08-12 16:23:04 +08:00
## Features
2022-12-13 04:39:43 +08:00
- ⚡️ [Vue 3 ](https://github.com/vuejs/core ), [Vite ](https://github.com/vitejs/vite ), [pnpm ](https://pnpm.io/ ), [esbuild ](https://github.com/evanw/esbuild ) - born with fastness
2020-08-12 16:23:04 +08:00
2020-08-20 16:04:00 +08:00
- 🗂 [File based routing ](./src/pages )
2020-10-28 18:05:02 +08:00
- 📦 [Components auto importing ](./src/components )
2022-07-01 23:53:15 +08:00
- 🍍 [State Management via Pinia ](https://pinia.vuejs.org/ )
2021-08-19 14:11:41 +08:00
2021-02-14 14:36:38 +08:00
- 📑 [Layout system ](./src/layouts )
2020-10-28 18:05:02 +08:00
- 📲 [PWA ](https://github.com/antfu/vite-plugin-pwa )
2020-08-12 16:23:04 +08:00
2022-02-17 20:59:24 +08:00
- 🎨 [UnoCSS ](https://github.com/antfu/unocss ) - the instant on-demand atomic CSS engine
2020-08-12 16:23:04 +08:00
2022-02-17 20:59:24 +08:00
- 😃 [Use icons from any icon sets with classes ](https://github.com/antfu/unocss/tree/main/packages/preset-icons )
2020-08-12 16:23:04 +08:00
2021-01-09 23:36:30 +08:00
- 🌍 [I18n ready ](./locales )
2020-08-12 16:23:04 +08:00
2022-10-03 03:18:07 +08:00
- 🔎 [Component Preview ](https://github.com/johnsoncodehk/vite-plugin-vue-component-preview )
2022-09-22 14:15:24 +08:00
2022-06-25 00:37:57 +08:00
- 🗒 [Markdown Support ](https://github.com/antfu/vite-plugin-vue-markdown )
2020-12-01 11:36:51 +08:00
2021-08-25 23:35:58 +08:00
- 🔥 Use the [new `<script setup>` syntax ](https://github.com/vuejs/rfcs/pull/227 )
2022-03-23 22:48:07 +08:00
- 🤙🏻 [Reactivity Transform ](https://vuejs.org/guide/extras/reactivity-transform.html ) enabled
2021-08-25 23:35:58 +08:00
- 📥 [APIs auto importing ](https://github.com/antfu/unplugin-auto-import ) - use Composition API and others directly
2020-11-28 14:14:36 +08:00
2022-01-27 05:32:20 +08:00
- 🖨 Static-site generation (SSG) via [vite-ssg ](https://github.com/antfu/vite-ssg )
2020-12-02 19:56:10 +08:00
2021-08-01 02:18:45 +08:00
- 🦔 Critical CSS via [critters ](https://github.com/GoogleChromeLabs/critters )
2020-08-12 16:23:04 +08:00
- 🦾 TypeScript, of course
2021-12-26 13:16:12 +08:00
- ⚙️ Unit Testing with [Vitest ](https://github.com/vitest-dev/vitest ), E2E Testing with [Cypress ](https://cypress.io/ ) on [GitHub Actions ](https://github.com/features/actions )
2021-11-02 09:45:48 +08:00
2020-10-28 18:05:02 +08:00
- ☁️ Deploy on Netlify, zero-config
2020-08-12 16:23:04 +08:00
< br >
2022-05-05 05:09:13 +08:00
2020-08-10 02:43:04 +08:00
## Pre-packed
### UI Frameworks
2022-02-17 20:59:24 +08:00
- [UnoCSS ](https://github.com/antfu/unocss ) - The instant on-demand atomic CSS engine.
2020-08-10 02:43:04 +08:00
2020-08-10 19:24:52 +08:00
### Icons
- [Iconify ](https://iconify.design ) - use icons from any icon sets [🔍Icônes ](https://icones.netlify.app/ )
2022-02-17 20:59:24 +08:00
- [Pure CSS Icons via UnoCSS ](https://github.com/antfu/unocss/tree/main/packages/preset-icons )
2020-08-10 19:24:52 +08:00
2020-08-20 16:04:00 +08:00
### Plugins
2020-08-10 02:43:04 +08:00
2022-08-08 16:34:38 +08:00
- [Vue Router ](https://github.com/vuejs/router )
2021-01-22 15:44:30 +08:00
- [`vite-plugin-pages` ](https://github.com/hannoeru/vite-plugin-pages ) - file system based routing
2021-02-12 13:32:53 +08:00
- [`vite-plugin-vue-layouts` ](https://github.com/JohnCampionJr/vite-plugin-vue-layouts ) - layouts for pages
2022-09-27 02:33:14 +08:00
- [Pinia ](https://pinia.vuejs.org ) - Intuitive, type safe, light and flexible Store for Vue using the composition api
2021-08-30 17:33:27 +08:00
- [`unplugin-vue-components` ](https://github.com/antfu/unplugin-vue-components ) - components auto import
2021-08-24 15:19:20 +08:00
- [`unplugin-auto-import` ](https://github.com/antfu/unplugin-auto-import ) - Directly use Vue Composition API and others without importing
2022-11-29 19:43:13 +08:00
- [`unplugin-vue-macros` ](https://github.com/sxzz/unplugin-vue-macros ) - Explore and extend more macros and syntax sugar to Vue.
2021-01-22 15:44:30 +08:00
- [`vite-plugin-pwa` ](https://github.com/antfu/vite-plugin-pwa ) - PWA
2022-09-22 14:15:24 +08:00
- [`vite-plugin-vue-component-preview` ](https://github.com/johnsoncodehk/vite-plugin-vue-component-preview ) - Preview single component in VSCode
2022-06-25 00:37:57 +08:00
- [`vite-plugin-vue-markdown` ](https://github.com/antfu/vite-plugin-vue-markdown ) - Markdown as components / components in Markdown
2022-07-24 19:29:27 +08:00
- [`markdown-it-shiki` ](https://github.com/antfu/markdown-it-shiki ) - [Shiki ](https://github.com/shikijs/shiki ) for syntax highlighting
2021-01-09 23:36:30 +08:00
- [Vue I18n ](https://github.com/intlify/vue-i18n-next ) - Internationalization
2022-12-21 16:46:33 +08:00
- [`unplugin-vue-i18n` ](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n ) - unplugin for Vue I18n
2020-08-10 19:24:52 +08:00
- [VueUse ](https://github.com/antfu/vueuse ) - collection of useful composition APIs
2022-03-07 04:16:26 +08:00
- [`vite-ssg-sitemap` ](https://github.com/jbaubree/vite-ssg-sitemap ) - Sitemap generator
2021-02-05 09:35:43 +08:00
- [`@vueuse/head` ](https://github.com/vueuse/head ) - manipulate document head reactively
2022-12-12 17:43:34 +08:00
- [`vite-plugin-vue-inspector` ](https://github.com/webfansplz/vite-plugin-vue-inspector ) - jump to local IDE source code while click the element of browser automatically
2020-08-10 02:43:04 +08:00
2020-08-12 16:23:04 +08:00
### Coding Style
2020-08-10 02:43:04 +08:00
2021-02-27 16:51:01 +08:00
- Use Composition API with [`<script setup>` SFC syntax ](https://github.com/vuejs/rfcs/pull/227 )
2021-02-27 12:36:10 +08:00
- [ESLint ](https://eslint.org/ ) with [@antfu/eslint-config ](https://github.com/antfu/eslint-config ), single quotes, no semi.
2020-08-10 02:43:04 +08:00
### Dev tools
2020-08-12 23:46:12 +08:00
- [TypeScript ](https://www.typescriptlang.org/ )
2021-12-26 13:16:12 +08:00
- [Vitest ](https://github.com/vitest-dev/vitest ) - Unit testing powered by Vite
- [Cypress ](https://cypress.io/ ) - E2E testing
2020-08-10 19:24:52 +08:00
- [pnpm ](https://pnpm.js.org/ ) - fast, disk space efficient package manager
2022-01-27 05:32:20 +08:00
- [`vite-ssg` ](https://github.com/antfu/vite-ssg ) - Static-site generation
2021-08-01 02:18:45 +08:00
- [critters ](https://github.com/GoogleChromeLabs/critters ) - Critical CSS
2021-02-27 16:51:01 +08:00
- [Netlify ](https://www.netlify.com/ ) - zero-config deployment
2020-08-10 11:17:26 +08:00
- [VS Code Extensions ](./.vscode/extensions.json )
2021-03-01 18:44:46 +08:00
- [Vite ](https://marketplace.visualstudio.com/items?itemName=antfu.vite ) - Fire up Vite server automatically
2022-08-08 16:34:38 +08:00
- [Volar ](https://marketplace.visualstudio.com/items?itemName=Vue.volar ) - Vue 3 `<script setup>` IDE support
2021-02-27 16:51:01 +08:00
- [Iconify IntelliSense ](https://marketplace.visualstudio.com/items?itemName=antfu.iconify ) - Icon inline display and autocomplete
- [i18n Ally ](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally ) - All in one i18n support
2020-08-12 23:46:12 +08:00
- [ESLint ](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint )
2020-08-10 02:43:04 +08:00
2020-10-01 14:08:01 +08:00
## Variations
2021-07-19 23:25:33 +08:00
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 is also welcome!
2020-10-01 14:08:01 +08:00
2021-07-19 23:25:33 +08:00
###### Official
2021-08-25 23:35:58 +08:00
2021-11-07 07:56:01 +08:00
- [vitesse-lite ](https://github.com/antfu/vitesse-lite ) - Lightweight version of Vitesse
- [vitesse-nuxt3 ](https://github.com/antfu/vitesse-nuxt3 ) - Vitesse for Nuxt 3
- [vitesse-nuxt-bridge ](https://github.com/antfu/vitesse-nuxt-bridge ) - Vitesse for Nuxt 2 with Bridge
- [vitesse-webext ](https://github.com/antfu/vitesse-webext ) - WebExtension Vite starter template
2021-07-19 23:25:33 +08:00
###### Community
2021-11-02 09:45:48 +08:00
2021-02-27 12:36:10 +08:00
- [vitesse-ssr-template ](https://github.com/frandiox/vitesse-ssr-template ) by [@frandiox ](https://github.com/frandiox ) - Vitesse with SSR
2021-10-20 06:07:28 +08:00
- [vitailse ](https://github.com/zynth17/vitailse ) by [@zynth17 ](https://github.com/zynth17 ) - Like Vitesse but with TailwindCSS
2021-10-18 15:23:57 +08:00
- [vitesse-modernized-chrome-ext ](https://github.com/xiaoluoboding/vitesse-modernized-chrome-ext ) by [@xiaoluoboding ](https://github.com/xiaoluoboding ) - ⚡️ Modernized Chrome Extension Manifest V3 Vite Starter Template
2021-11-11 15:25:55 +08:00
- [vitesse-stackter-clean-architect ](https://github.com/shamscorner/vitesse-stackter-clean-architect ) by [@shamscorner ](https://github.com/shamscorner ) - A modular clean architecture pattern in vitesse template
2021-11-23 10:08:56 +08:00
- [vitesse-enterprise ](https://github.com/FranciscoKloganB/vitesse-enterprise ) by [@FranciscoKloganB ](https://github.com/FranciscoKloganB ) - Consistent coding styles regardless of team-size.
2022-02-14 17:56:11 +08:00
- [vitecamp ](https://github.com/nekobc1998923/vitecamp ) by [@nekobc1998923 ](https://github.com/nekobc1998923 ) - Like Vitesse but without SSG/SSR/File based routing, includes Element Plus
2022-08-21 21:07:31 +08:00
- [vitesse-h5 ](https://github.com/YunYouJun/vitesse-h5 ) by [@YunYouJun ](https://github.com/YunYouJun ) - Vitesse for Mobile
2022-09-27 02:33:14 +08:00
- [bat ](https://github.com/olgam4/bat ) by [@olgam4 ](https://github.com/olgam4 ) - Vitesse for SolidJS
2023-01-20 20:03:00 +08:00
- [vitesse-solid ](https://github.com/xbmlz/vitesse-solid ) by [@xbmlz ](https://github.com/xbmlz ) - Vitesse for SolidJS, build with [`SolidStart` ](https://start.solidjs.com/ ), includes [UnoCSS ](https://github.com/unocss/unocss ) and [HopeUI ](https://hope-ui.com/ ).
2020-10-01 14:08:01 +08:00
2020-08-10 11:17:26 +08:00
## Try it now!
2022-07-17 14:34:49 +08:00
> Vitesse requires Node >=14.18
2021-12-26 13:08:09 +08:00
2021-01-07 23:02:56 +08:00
### GitHub Template
2020-08-12 23:46:12 +08:00
2021-01-07 23:02:56 +08:00
[Create a repo from this template on GitHub ](https://github.com/antfu/vitesse/generate ).
2020-08-10 11:17:26 +08:00
2020-08-13 02:38:04 +08:00
### Clone to local
2020-08-12 23:46:12 +08:00
2020-12-21 17:48:15 +08:00
If you prefer to do it manually with the cleaner git history
2020-08-10 02:43:04 +08:00
```bash
2020-08-10 11:17:26 +08:00
npx degit antfu/vitesse my-vitesse-app
cd my-vitesse-app
2020-08-10 10:38:38 +08:00
pnpm i # If you don't have pnpm installed, run: npm install -g pnpm
2020-08-10 02:43:04 +08:00
```
2020-08-21 00:06:21 +08:00
## Checklist
2020-09-16 00:04:25 +08:00
When you use this template, try follow the checklist to update your info properly
2020-08-21 00:06:21 +08:00
- [ ] Change the author name in `LICENSE`
2021-02-23 08:25:58 +08:00
- [ ] Change the title in `App.vue`
2022-03-07 04:16:26 +08:00
- [ ] Change the hostname in `vite.config.ts`
2020-08-21 00:06:21 +08:00
- [ ] 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
2020-12-02 08:09:24 +08:00
Just run and visit http://localhost:3333
2020-08-21 00:06:21 +08:00
```bash
pnpm dev
```
### Build
To build the App, run
```bash
pnpm build
```
2020-11-28 14:14:36 +08:00
And you will see the generated file in `dist` that ready to be served.
2020-08-21 00:06:21 +08:00
### Deploy on Netlify
2020-11-28 14:14:36 +08:00
Go to [Netlify ](https://app.netlify.com/start ) and select your clone, `OK` along the way, and your App will be live in a minute.
2020-08-21 00:06:21 +08:00
2022-07-01 00:09:36 +08:00
### Docker Production Build
First, build the vitesse image by opening the terminal in the project's root directory.
2022-06-30 21:47:22 +08:00
```bash
2022-07-06 14:05:21 +08:00
docker buildx build . -t vitesse:latest
2022-06-30 21:47:22 +08:00
```
2022-07-01 00:09:36 +08:00
2022-06-30 21:47:22 +08:00
Run the image and specify port mapping with the `-p` flag.
2022-07-01 00:09:36 +08:00
2022-06-30 21:47:22 +08:00
```bash
2022-07-01 00:09:36 +08:00
docker run --rm -it -p 8080:80 vitesse:latest
2022-06-30 21:47:22 +08:00
```
2020-08-10 02:43:04 +08:00
## Why
2021-02-19 13:20:57 +08:00
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.
2020-08-10 11:17:26 +08:00
2022-07-14 23:01:25 +08:00
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 maintain your own forks. [(see community maintained variation forks) ](#variations )
2023-02-06 18:46:28 +08:00
## 📄 License
MIT License © 2020-PRESENT [Anthony Fu ](https://github.com/antfu )