扩展

通过一些示例来满足你的项目需求

排除页面

exclude 参数无法排除某些页面时,可以通过 onAfterScanPages 钩子来对扫描的页面进行过滤

vite.config.js
util.js
import UniPages from '@uni-helper/vite-plugin-uni-pages'
import { defineConfig } from 'vite'
import { scanPageFilter } from './builds/util.js'

export default defineConfig({
  plugins: [
    UniPages({
      onAfterScanPages: (ctx) => {
        // 扫描页面后进行过滤
        scanPageFilter(ctx, 'pages')
        scanPageFilter(ctx, 'subPages')
      },
    })
  ],
})

路由唯一标识

在普遍业务场景中,路由需要一个唯一标识 name,即路由名称,但有时我们并不想手动为每个页面配置 name,这时可以通过 onAfterMergePageMetaData 钩子来自动生成

vite.config.js
util.js
import UniPages from '@uni-helper/vite-plugin-uni-pages'
import { defineConfig } from 'vite'
import { handlePageName } from './builds/util.js'

export default defineConfig({
  plugins: [
    UniPages({
      onAfterMergePageMetaData: (ctx) => {
        handlePageName(ctx, 'pageMetaData')
        handlePageName(ctx, 'subPageMetaData')
      },
    })
  ],
})

路径常量化

为了避免硬编码,路径常量化往往能够提升开发体验,在 onAfterWriteFile 钩子中,读取最终所有页面数据,生成路径常量化模块

vite.config.js
util.js
import UniPages from '@uni-helper/vite-plugin-uni-pages'
import { defineConfig } from 'vite'
import { writePageConst } from './builds/util.js'

export default defineConfig({
  plugins: [
    UniPages({
      onAfterWriteFile: (ctx) => {
        writePageConst(ctx)
      },
    })
  ],
})