# GURU模式动态拆分路由

使用 guru 时,动态拆分 pages.json

# 如何使用

安装

pnpm add @plugin-light/vite-plugin-guru-pages -D

vite.config.ts 中添加如下设置:

import { defineConfig } from 'vite';
import { guruPagesVitePlugin } from '@plugin-light/vite-plugin-guru-pages';


export default defineConfig({
  plugins: [
    guruPagesVitePlugin({
      guruNamespace,
      defaultGuruNamespace,
      guruList,
      inputDir: process.env.UNI_INPUT_DIR,

      mainPages: [
        {
          path: 'views/entrance/entrance',
          name: 'entrance',
          style: {
            navigationStyle: 'custom',
          },
        },
      ],
    })
  ],
});

# 参数

export interface IGuruPagesVitePluginOptions {
  // 当前命名空间
  guruNamespace: string

  // 项目入口路径
  inputDir: string;

  /**
   * 不同 root 对应的命名空间列表,如:
   * [
   *   {
   *     root: 'views/match',
   *     guruNamespace: 'convert-cross-one'
   *   },
   *   {
   *     root: 'views/sche-manage-vert',
   *     guruNamespace: 'convert-cross-two'
   *   },
   *   {
   *     root: 'views/match-list',
   *     guruNamespace: 'convert-cross-two'
   *   },
   *   {
   *     root: 'views/battle-room',
   *     guruNamespace: 'convert-cross-three'
   *   },
   * ]
   */
  guruList: Array<{ root: string; guruNamespace: string }>;

  // 默认命名空间
  defaultGuruNamespace: string;

  // 主包页面,如果传入,则使用“增加模式”,即用传入的“mainPage”替换之前的主包页面
  // 如果不传入,则使用“删除模式”,即删除之前的主包页面,用第一个分包页面当成主包页面(删除模式用的是另一个插件)
  mainPages?: Record<string, any>;
}

# 更新日志

点此查看

Last Updated: 2025/1/15 14:15:00