vitesse/README.md

161 lines
6.7 KiB
Markdown
Raw Normal View History

2020-08-10 02:43:04 +08:00
<p align='center'>
2021-03-20 17:07:14 +08:00
<img src='https://user-images.githubusercontent.com/11247099/111864893-a457fd00-899e-11eb-9f05-f4b88987541d.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>
2021-02-16 12:38:22 +08:00
<sub><em>Now with <a href="http://windicss.netlify.app/">Windi CSS</a>! ⚡️</em></sub>
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>
2020-08-12 16:23:04 +08:00
## Features
2021-01-07 13:49:19 +08:00
- ⚡️ [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
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)
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
- 🎨 [Windi CSS](https://github.com/windicss/windicss) - next generation utility-first CSS framework
2020-08-12 16:23:04 +08:00
2020-08-20 16:04:00 +08:00
- 😃 [Use icons from any icon sets, with no compromise](./src/components)
2020-08-12 16:23:04 +08:00
- 🌍 [I18n ready](./locales)
2020-08-12 16:23:04 +08:00
2020-12-01 11:36:51 +08:00
- 🗒 [Markdown Support](https://github.com/antfu/vite-plugin-md)
2020-11-28 14:14:36 +08:00
- 🔥 Use the [new `<script setup>` style](https://github.com/vuejs/rfcs/pull/227)
2020-12-21 17:07:07 +08:00
- 🖨 Server-side generation (SSG) via [vite-ssg](https://github.com/antfu/vite-ssg)
2020-12-02 19:56:10 +08:00
2020-08-12 16:23:04 +08:00
- 🦾 TypeScript, of course
2020-10-28 18:05:02 +08:00
- ☁️ Deploy on Netlify, zero-config
2020-08-12 16:23:04 +08:00
<br>
2020-08-10 02:43:04 +08:00
## 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
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/)
2021-01-22 15:44:30 +08:00
- [`vite-plugin-icons`](https://github.com/antfu/vite-plugin-icons) - icons as Vue components
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
- [Vue Router](https://github.com/vuejs/vue-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
2021-01-22 15:44:30 +08:00
- [`vite-plugin-components`](https://github.com/antfu/vite-plugin-components) - components auto import
- [`vite-plugin-pwa`](https://github.com/antfu/vite-plugin-pwa) - PWA
2021-02-16 12:38:22 +08:00
- [`vite-plugin-windicss`](https://github.com/antfu/vite-plugin-windicss) - WindiCSS support
2021-01-22 15:44:30 +08:00
- [`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
2021-01-22 15:44:30 +08:00
- [`vite-plugin-vue-i18n`](https://github.com/intlify/vite-plugin-vue-i18n) - Vite plugin for Vue I18n
2020-08-10 19:24:52 +08:00
- [VueUse](https://github.com/antfu/vueuse) - collection of useful composition APIs
2021-02-05 09:35:43 +08:00
- [`@vueuse/head`](https://github.com/vueuse/head) - manipulate document head reactively
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/)
2020-08-10 19:24:52 +08:00
- [pnpm](https://pnpm.js.org/) - fast, disk space efficient package manager
2021-01-22 15:44:30 +08:00
- [`vite-ssg`](https://github.com/antfu/vite-ssg) - Server-side generation
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
2021-02-27 16:51:01 +08:00
- [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) - Vue 3 `<script setup>` IDE support
- [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
- [Windi CSS Intellisense](https://marketplace.visualstudio.com/items?itemName=voorjaar.windicss-intellisense) - IDE support for Windi CSS
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
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!
2020-10-01 14:08:01 +08:00
2021-02-27 12:36:10 +08:00
- [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)
- [vitesse-ssr-template](https://github.com/frandiox/vitesse-ssr-template) by [@frandiox](https://github.com/frandiox) - Vitesse with SSR
- [vitesse-nuxt](https://github.com/antfu/vitesse-nuxt) - Vitesse for Nuxt 2 (expiremental)
2020-10-01 14:08:01 +08:00
2020-08-10 11:17:26 +08:00
## Try it now!
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
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
- [ ] Rename `name` field in `package.json`
- [ ] Change the author name in `LICENSE`
2021-02-23 08:25:58 +08:00
- [ ] Change the title in `App.vue`
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
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
2020-08-10 02:43:04 +08:00
## 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.
2020-08-10 11:17:26 +08:00
2020-10-01 14:08:01 +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 maintains your own forks. [(see community maintained variation forks)](#variations)