1.0.2 • Published 1 year ago

@nightgale/vite-plugin-pages v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

vite-plugin-pages

基于 vite 驱动的 uni-app 文件路由系统插件。

安装

pnpm add -D @nightgale/vite-plugin-pages

使用

vite.config

// vite.config.ts
import { defineConfig } from 'vite'
import Uni from '@dcloudio/vite-plugin-uni'
import RoutePages from '@nightgale/vite-plugin-pages'

// It is recommended to put it in front of Uni
export default defineConfig({
  plugins: [
    RoutePages(),
    Uni()
  ],
})

现在所有的页面都将被自动找到!

选项配置

interface SubPagesOptions {
 /**
  * 子包的根目录
  * @description 可配置多个子包根目录
  */
 base: string | string[];

 /**
  * 子包目录搜索深度
  * @default 1
  */
 depth: number;
}

interface Options {
 /**
  * UniApp 编译平台类型
  * @default 'h5'
  */
 platform: Platform;

 /**
  * 默认启动首页
  * @default 'pages/index' or 'pages/index/index'
  */
 homePage: string;

 /**
  * 页面搜索路径
  * @default 'src/pages'
  */
 pages: string;

 /**
  * 子包页面搜索路径
  * @default []
  */
 subPackages: string[] | SubPagesOptions;

 /**
  * SFC 文件扩展名
  * @default ['vue', 'nvue', 'uvue']
  */
 extensions: string[];

 /**
  * pages.json 输出地址
  * @default "src"
  */
 outDir: string;

 /**
  * 路由信息块默认解释语言
  * @default 'json5'
  * @description 或通过在SFC单文件中 `<route lang="xxx">` 配置
  */
 routeBlockLang: RouteLang;

 /**
  * 是否输出日志
  * @default false
  */
 debug: boolean;

 /**
  * 需排除的页面
  * @default []
  */
 exclude: string[];

 /**
  * 移除 SFC 文件中 Template 中的注释项
  * @default 'none'
  * @description all: 全部移除,region: 只移除region注释块,none: 不移除
  */
 removeComment: 'all' | 'region' | 'none';

 /**
  * 是否强制开启 UniPage 路由模式,只支持 H5 平台
  * @default false
  * @description 默认根据 pages.json 中 pages 配置是否使用路由模式,
  *              当 pages 页面配置数量 >1 时会自动开启 UniRouter 模式,
  *              也可以通过该配置强制开启 UniRouter 模式
  */
 uniRouter: boolean;

 /**
  * 默认 UniPage 生成的 routes 信息中不带有 name,使用该配置可以为 routes 加上 name,只适合 H5 平台
  * @default false
  * @description 注意:同时也可以使用 VueRouter 的路由名称进行跳转
  */
 routeNamePatch: boolean;
}

route 块

route 块数据会合拼并覆盖 pages.json 中同名数据

名称说明可选值默认
type页面类型'page' | 'home''page'
lang块默认解释语言'json5' | 'json' | 'yaml' | 'yml'json5
platform指定平台类型,为空即全平台,只能是或关系,例: h5 || mp同UniApp的平台类型h5
<!-- 可通过设置 type='home' 为首页 -->
<!-- 暂不支持 UniApp 的条件编译,可通过配置 platform 属性指定平台 -->
<route type="home">
{
  "style": { "navigationBarTitleText": "@nightgale" }
}
</route>