uni-app:5 步接入 vite-plugin-uni-pages,用 <route> 自动生成 pages.json

装插件 → vite.config.ts 启用 → pages.config.ts 写全局 → 页面用 写局部 → 运行看到生成物。

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

@uni-helper/vite-plugin-uni-pages 的核心作用是:扫描页面文件 + 解析每个页面里的 <route> 自定义块,再结合 pages.config.ts 的全局配置,自动生成 src/pages.json。

uni-app 会基于 src/pages.json 进一步编译输出各个平台所需的页面配置文件(例如页面对应的 *.json)。

一句话总结:它负责"从 pages.config.ts + 各页面 .vue 的 <route lang="json5"> 汇总生成 src/pages.json",让页面配置可以就近维护在页面文件里。


1)安装依赖

一般安装到开发依赖(devDependencies):

js 复制代码
pnpm add -D @uni-helper/vite-plugin-uni-pages

2)在 vite.config.ts 里启用插件(注意顺序)

js 复制代码
UniPages() 建议放在 Uni() 之前:

// vite.config.ts

plugins: [

  UniPages({

    routeBlockLang: 'json5',

  }),

  Uni(),

]
  • routeBlockLang: 'json5':表示页面里的 <route lang="json5"> 会按 JSON5 解析(支持注释等)。

3)提供全局配置入口:pages.config.ts(推荐)

js 复制代码
    用 defineUniPages() 统一维护全局配置(如 globalStyle、tabBar、easycom 等):

// pages.config.ts

import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages'

export default defineUniPages({

  globalStyle: {

    backgroundTextStyle: 'light',

    navigationBarBackgroundColor: '#FFDDD3',

    navigationBarTitleText: '',

    navigationBarTextStyle: 'black',

    'mp-weixin': {

      navigationStyle: 'custom',

    },

    'mp-toutiao': {

      transparentTitle: 'always',

    },

  },

  // ... tabBar / easycom ...

})

插件会把这里的全局配置与每个页面 <route> 的页面配置合并,生成 src/pages.json。


4)页面里怎么写 <route>

在页面 .vue 顶部写 <route>,通常配置该页的 style:

js 复制代码
<route lang="json5" type="home">

{

  style: {

    "enableShareAppMessage": true,

    "enableShareTimeline": true,

  },

}

</route>
  • 真正影响小程序行为的是 style 里的配置(例如微信分享开关)。
  • type="home" 这类字段更多是你的工程/插件生成用的元信息,不是 uni-app 标准必须项。

5)运行查看效果

js 复制代码
pnpm dev:mp-weixin

# 或

pnpm dev:mp-toutiao
  • 开发时:会生成/更新 src/pages.json

  • 构建后:会在 dist/.../<platform>/pages/**/**.json 看到对应页面的配置输出(例如 pages/xxx/xxxx.json)

相关推荐
啾咪orJIUMI2 小时前
Vue 3 + 高德地图封装实战:点位、区域、Loca 流光与 Vue 信息窗体
前端·vue.js
掘金者阿豪2 小时前
AI数据库不只是向量检索:从数据语义到库内智能计算的技术演进
前端
梦里寻码2 小时前
我用 NestJS + Vue3 写了一套完整的研发管理系统(58 表 / 229 API / 130 项断言,全开源
前端·后端·算法
FRing032 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
SameX2 小时前
HarmonyOS ArkUI Dialog 复用 用 @CustomDialog + enum type 做多类型统一管理的做法
前端
AiMan2 小时前
豆包爱学还是不可以导出左侧所有对话,只能单容导出,方法不对吗
前端
AiMan3 小时前
Grok生成的内容能否下载吗?
前端
徐小夕3 小时前
JitArchives,一款基于JitWord协同AI文档打造的企业级电子档案系统
前端·vue.js·github
陈随易3 小时前
Node.js 2026上半年都有哪些性能提升?
前端·后端·程序员
墨林陌4 小时前
AI 热点日报(2026-11-09):苹果代理式Siri曝光,Anthropic推进IPO,编码智能体实测翻车
前端