2022-01-25 22:13:42 +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'/>
|
2022-01-25 22:13:42 +08:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align='center'>
|
|
|
|
快速地<sup><em>Vitesse</em></sup> 创建 Web 应用
|
2022-07-04 23:27:59 +08:00
|
|
|
<br>
|
2022-01-25 22:13:42 +08:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align='center'>
|
|
|
|
<a href="https://vitesse.netlify.app/">在线 Demo</a>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align='center'>
|
|
|
|
<a href="https://github.com/antfu/vitesse/blob/main/README.md">English</a> | <b>简体中文</b>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
## 特性
|
|
|
|
|
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) - 就是快!
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
- 🗂 [基于文件的路由](./src/pages)
|
|
|
|
|
|
|
|
- 📦 [组件自动化加载](./src/components)
|
|
|
|
|
2022-09-05 18:35:12 +08:00
|
|
|
- 🍍 [使用 Pinia 的状态管理](https://pinia.vuejs.org)
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
- 📑 [布局系统](./src/layouts)
|
|
|
|
|
|
|
|
- 📲 [PWA](https://github.com/antfu/vite-plugin-pwa)
|
|
|
|
|
2022-02-17 21:05:01 +08:00
|
|
|
- 🎨 [UnoCSS](https://github.com/unocss/unocss) - 高性能且极具灵活性的即时原子化 CSS 引擎
|
2022-01-25 22:13:42 +08:00
|
|
|
|
2022-02-17 21:05:01 +08:00
|
|
|
- 😃 [各种图标集为你所用](https://github.com/antfu/unocss/tree/main/packages/preset-icons)
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
- 🌍 [I18n 国际化开箱即用](./locales)
|
|
|
|
|
2022-06-25 00:37:57 +08:00
|
|
|
- 🗒 [Markdown 支持](https://github.com/antfu/vite-plugin-vue-markdown)
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
- 🔥 使用 [新的 `<script setup>` 语法](https://github.com/vuejs/rfcs/pull/227)
|
|
|
|
|
2022-07-04 23:27:59 +08:00
|
|
|
- 🤙🏻 默认开启 [响应性语法糖](https://vuejs.org/guide/extras/reactivity-transform.html)
|
2022-03-23 22:48:07 +08:00
|
|
|
|
2022-01-25 22:13:42 +08:00
|
|
|
- 📥 [API 自动加载](https://github.com/antfu/unplugin-auto-import) - 直接使用 Composition API 无需引入
|
|
|
|
|
|
|
|
- 🖨 使用 [vite-ssg](https://github.com/antfu/vite-ssg) 进行服务端生成 (SSG)
|
|
|
|
|
|
|
|
- 🦔 使用 [critters](https://github.com/GoogleChromeLabs/critters) 的生成关键 CSS
|
|
|
|
|
|
|
|
- 🦾 TypeScript, 当然
|
|
|
|
|
|
|
|
- ⚙️ 结合 [GitHub Actions](https://github.com/features/actions),使用 [Vitest](https://github.com/vitest-dev/vitest) 进行单元测试, [Cypress](https://cypress.io/) 进行 E2E 测试
|
|
|
|
|
|
|
|
- ☁️ 零配置部署 Netlify
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
## 预配置
|
|
|
|
|
|
|
|
### UI 框架
|
|
|
|
|
2022-02-17 21:05:01 +08:00
|
|
|
- [UnoCSS](https://github.com/antfu/unocss) - 高性能且极具灵活性的即时原子化 CSS 引擎
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
### Icons
|
|
|
|
|
2022-02-17 21:05:01 +08:00
|
|
|
- [Iconify](https://iconify.design) - 使用任意的图标集,浏览:[🔍Icônes](https://icones.netlify.app/)
|
|
|
|
- [UnoCSS 的纯 CSS 图标方案](https://github.com/antfu/unocss/tree/main/packages/preset-icons)
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
### 插件
|
|
|
|
|
2022-08-08 16:34:38 +08:00
|
|
|
- [Vue Router](https://github.com/vuejs/router)
|
2022-01-25 22:13:42 +08:00
|
|
|
- [`vite-plugin-pages`](https://github.com/hannoeru/vite-plugin-pages) - 以文件系统为基础的路由
|
|
|
|
- [`vite-plugin-vue-layouts`](https://github.com/JohnCampionJr/vite-plugin-vue-layouts) - 页面布局系统
|
2022-11-25 16:00:50 +08:00
|
|
|
- [Pinia](https://pinia.vuejs.org) - 直接的, 类型安全的, 使用 Composition API 的轻便灵活的 Vue 状态管理
|
2022-01-25 22:13:42 +08:00
|
|
|
- [`unplugin-vue-components`](https://github.com/antfu/unplugin-vue-components) - 自动加载组件
|
|
|
|
- [`unplugin-auto-import`](https://github.com/antfu/unplugin-auto-import) - 直接使用 Composition API 等,无需导入
|
|
|
|
- [`vite-plugin-pwa`](https://github.com/antfu/vite-plugin-pwa) - PWA
|
2022-06-25 00:37:57 +08:00
|
|
|
- [`vite-plugin-vue-markdown`](https://github.com/antfu/vite-plugin-vue-markdown) - Markdown 作为组件,也可以让组件在 Markdown 中使用
|
2022-01-25 22:13:42 +08:00
|
|
|
- [`markdown-it-prism`](https://github.com/jGleitz/markdown-it-prism) - [Prism](https://prismjs.com/) 的语法高亮
|
|
|
|
- [`prism-theme-vars`](https://github.com/antfu/prism-theme-vars) - 利用 CSS 变量自定义 Prism.js 的主题
|
|
|
|
- [Vue I18n](https://github.com/intlify/vue-i18n-next) - 国际化
|
2022-08-08 16:34:38 +08:00
|
|
|
- [`vite-plugin-vue-i18n`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n) - Vue I18n 的 Vite 插件
|
2022-01-25 22:13:42 +08:00
|
|
|
- [VueUse](https://github.com/antfu/vueuse) - 实用的 Composition API 工具合集
|
2022-03-07 04:16:26 +08:00
|
|
|
- [`vite-ssg-sitemap`](https://github.com/jbaubree/vite-ssg-sitemap) - 站点地图生成器
|
2022-01-25 22:13:42 +08:00
|
|
|
- [`@vueuse/head`](https://github.com/vueuse/head) - 响应式地操作文档头信息
|
2022-12-12 17:43:34 +08:00
|
|
|
- [`vite-plugin-vue-inspector`](https://github.com/webfansplz/vite-plugin-vue-inspector) - 点击页面元素自动跳转到本地IDE对应的 Vue 组件
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
### 编码风格
|
|
|
|
|
|
|
|
- 使用 Composition API 地 [`<script setup>` SFC 语法](https://github.com/vuejs/rfcs/pull/227)
|
|
|
|
- [ESLint](https://eslint.org/) 配置为 [@antfu/eslint-config](https://github.com/antfu/eslint-config), 单引号, 无分号.
|
|
|
|
|
|
|
|
### 开发工具
|
|
|
|
- [TypeScript](https://www.typescriptlang.org/)
|
|
|
|
- [Vitest](https://github.com/vitest-dev/vitest) - 基于 Vite 的单元测试框架
|
|
|
|
- [Cypress](https://cypress.io/) - E2E 测试
|
|
|
|
- [pnpm](https://pnpm.js.org/) - 快, 节省磁盘空间的包管理器
|
|
|
|
- [`vite-ssg`](https://github.com/antfu/vite-ssg) - 服务端生成
|
|
|
|
- [critters](https://github.com/GoogleChromeLabs/critters) - 关键 CSS 生成器
|
|
|
|
- [Netlify](https://www.netlify.com/) - 零配置的部署
|
|
|
|
- [VS Code 扩展](./.vscode/extensions.json)
|
|
|
|
- [Vite](https://marketplace.visualstudio.com/items?itemName=antfu.vite) - 自动启动 Vite 服务器
|
2022-08-08 16:34:38 +08:00
|
|
|
- [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) - Vue 3 `<script setup>` IDE 支持
|
2022-01-25 22:13:42 +08:00
|
|
|
- [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify) - 图标内联显示和自动补全
|
|
|
|
- [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally) - 多合一的 I18n 支持
|
|
|
|
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
|
|
|
|
|
|
|
|
## 衍生项目
|
|
|
|
|
|
|
|
由于这个模板的业务场景非常的局限,下面提供了一个精心策划的列表,列出了社区维护的具有不同偏好和功能集的衍生项目。也可以看看他们。当然也欢迎你 PR 提供自己的项目!
|
|
|
|
|
|
|
|
###### 官方
|
|
|
|
|
|
|
|
- [vitesse-lite](https://github.com/antfu/vitesse-lite) - Vitesse 的轻量版本
|
|
|
|
- [vitesse-nuxt3](https://github.com/antfu/vitesse-nuxt3) - Vitesse 的 Nuxt 3 版本
|
|
|
|
- [vitesse-nuxt-bridge](https://github.com/antfu/vitesse-nuxt-bridge) - Vitesse 的 Nuxt2 桥接版本
|
|
|
|
- [vitesse-webext](https://github.com/antfu/vitesse-webext) - 开箱即用的浏览器扩展 vite 模板
|
|
|
|
|
|
|
|
###### 社区
|
|
|
|
|
|
|
|
[查看英文版](./README.md#community)
|
|
|
|
|
|
|
|
## 现在可以试试!
|
|
|
|
|
2022-07-17 14:34:49 +08:00
|
|
|
> Vitesse 需要 Node 版本 >=14.18
|
2022-01-25 22:13:42 +08:00
|
|
|
|
|
|
|
### GitHub 模板
|
|
|
|
|
|
|
|
[使用这个模板创建仓库](https://github.com/antfu/vitesse/generate).
|
|
|
|
|
|
|
|
### 克隆到本地
|
|
|
|
|
|
|
|
如果您更喜欢使用更干净的 git 历史记录手动执行此操作
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npx degit antfu/vitesse my-vitesse-app
|
|
|
|
cd my-vitesse-app
|
|
|
|
pnpm i # 如果你没装过 pnpm, 可以先运行: npm install -g pnpm
|
|
|
|
```
|
|
|
|
|
|
|
|
## 清单
|
|
|
|
|
|
|
|
使用此模板时,请尝试按照清单正确更新您自己的信息
|
|
|
|
|
|
|
|
- [ ] 在 `LICENSE` 中改变作者名
|
|
|
|
- [ ] 在 `App.vue` 中改变标题
|
2022-03-07 04:16:26 +08:00
|
|
|
- [ ] 在 `vite.config.ts` 更改主机名
|
2022-01-25 22:13:42 +08:00
|
|
|
- [ ] 在 `public` 目录下改变favicon
|
|
|
|
- [ ] 移除 `.github` 文件夹中包含资助的信息
|
|
|
|
- [ ] 整理 README 并删除路由
|
|
|
|
|
|
|
|
紧接着, 享受吧 :)
|
|
|
|
|
|
|
|
## 使用
|
|
|
|
|
|
|
|
### 开发
|
|
|
|
|
|
|
|
只需要执行以下命令就可以在 http://localhost:3333 中看到
|
|
|
|
|
|
|
|
```bash
|
|
|
|
pnpm dev
|
|
|
|
```
|
|
|
|
|
|
|
|
### 构建
|
|
|
|
|
|
|
|
构建该应用只需要执行以下命令
|
|
|
|
|
|
|
|
```bash
|
|
|
|
pnpm build
|
|
|
|
```
|
|
|
|
|
|
|
|
然后你会看到用于发布的 `dist` 文件夹被生成。
|
|
|
|
|
|
|
|
### 部署到 Netlify
|
|
|
|
|
|
|
|
前往 [Netlify](https://app.netlify.com/start) 并选择你的仓库, 一路 `OK` 下去,稍等一下后,你的应用将被创建.
|