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)

相关推荐
程序员爱钓鱼6 分钟前
Rust impl详解:为Struct定义方法与关联函数
前端·后端·rust
用户0595401744615 分钟前
Qdrant 召回不一致踩坑实录:跑了 300 次测试才发现是索引没刷新
前端·css
Highcharts.js27 分钟前
Highcharts 主流前端框架无缝集成指南
前端·vue.js·前端框架·highcharts·可视化图表
JAVA面经实录91729 分钟前
网络编程基础(Java Web/分布式前置·完整版)(十一)
java·前端·网络
IT_陈寒31 分钟前
搞不定JavaScript的数组去重?你可能漏了这两个坑
前端·人工智能·后端
三84440 分钟前
CSRF跨站请求伪造基础
前端·csrf
岁岁种桃花儿1 小时前
Vue核心语法第十一篇:绑定样式
前端·javascript·vue.js
程序员黑豆9 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC9 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript