@nightgale/vite-plugin-pages
v1.0.2
Published
File system based routing for uni-app applications using Vite
Downloads
5
Readme
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>