Skip to content

Vixt

介绍

Vixt是一个Vite插件,与Nuxt一样旨在提升开发者体验,名字取自Vite的前两个字母和Nuxt的后两个字母。

为什么不用Nuxt?

Nuxt具备SSR和全栈开发的能力,如果你的项目需要这些,Nuxt是个不错的选择。当然它也可以通过配置关闭ssr甚至是混合渲染以适应不同的场景,但是它依然会带来一些额外的性能开销和心智负担,随着项目体积增大,启动时间也会成倍增加(这也是Vixt诞生的主要原因)。

而Vixt则是一个轻量级的Vite插件,抛弃了ssr(也许后续会支持)和服务端,它的启动速度完全取决于Vite,Vite有多快,Vixt就有多快,同时它也提供了一些提升开发者体验的特性,比如文件系统路由、布局、自动导入、模块(modules)、图层(layers)等。

创建Vixt项目

Vixt推荐使用pnpm+monorepo管理项目,创建的默认模板也是monorepo项目

sh
# 默认为monorepo模板,包含vue和uni-app项目
pnpm create vixt my-project

# vue单项目
# pnpm create vixt my-project --template vue-ts

# uni-app单项目
# pnpm create vixt my-project --template uni-ts

在现有项目中使用

  • 删除 packages.json 中的与vixt重复的依赖(如vue,vite等,非必须)
  • 创建 .npmrc
shamefully-hoist=true
strict-peer-dependencies=false
  • 安装 vixt
sh
pnpm add vixt
  • 新建vixt.config.ts
ts
import { defineVixtConfig } from '@vixt/core'

export default defineVixtConfig({})
  • 修改vite.config.ts
ts
import vixt from '@vixt/vue'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [vixt()],
})
  • 修改tsconfig.json
json
{
  "extends": "./.vixt/tsconfig.json"
}