Skip to content
On this page

@uni-helper/vite-plugin-uni-pages

一个用于自动生成 uni-app 页面路由的 Vite 插件

安装

bash
pnpm add -D @uni-helper/vite-plugin-uni-pages

基础配置

vite.config.ts 中配置插件:

ts
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import UniPages from '@uni-helper/vite-plugin-uni-pages'

export default defineConfig({
  plugins: [
    // 必须在 @dcloudio/vite-plugin-uni 之前引入
    UniPages({
      // 可选,开发者模式下是否禁用自动检测文件变更重新生成 routes
      // 默认会在开发者模式下自动检测文件变更重新生成 routes
      dts: true,
      // 可选,是否生成 pages.d.ts
      // 需要将 typescript 添加为开发依赖
      // 默认不生成
      onChange() {
        // 可选,文件变更时的回调
        console.log('pages change')
      },
    }),
    uni(),
  ],
})

页面配置

在页面组件中使用 <route> 自定义块来配置页面:

vue
<route lang="json5">
{
  // 页面样式配置
  style: {
    navigationBarTitleText: '页面标题',
  },
  // 页面元数据,可以在页面中通过 usePageMeta() 获取
  meta: {
    requiresAuth: true,
  },
}
</route>

<template>
  <view>页面内容</view>
</template>

TypeScript 支持

插件提供完整的 TypeScript 类型支持。在 env.d.ts 中添加:

ts
/// <reference types="@uni-helper/vite-plugin-uni-pages/client" />

高级配置

ts
UniPages({
  // 可选,页面目录,默认 src/pages
  dir: 'src/pages',
  // 可选,是否扫描 src/pages 以外的页面
  // 默认不扫描
  scanDirs: ['src/admin'],
  // 可选,排除的文件
  // 默认排除所有 components 目录
  exclude: ['**/components/**/*'],
  // 可选,是否开启调试模式
  // 默认不开启
  debug: false,
  // 可选,route 块使用的语言
  // 默认为 json5
  routeBlockLang: 'json5',
  // 可选,是否支持原生生命周期
  // 默认支持
  nativeLifecycle: true,
  // 可选,分包配置
  subPackages: [
    {
      root: 'src/pages-sub',
      pages: [
        {
          path: 'index',
          style: {
            navigationBarTitleText: '分包页面',
          },
        },
      ],
    },
  ],
})

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命