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)

相关推荐
之歆7 分钟前
Promise 基础技术深度解析:从回调地狱到链式调用
前端·okhttp·promise
甲维斯9 分钟前
国产版“Codex”初体验,智谱ZCode很强啊!
前端·人工智能·ai编程
道友可好12 分钟前
AI 怎么自己跑完一个 6 小时的任务?
前端·人工智能·后端
To_OC24 分钟前
通义千问多模态生图踩坑记:我是如何把两个报错逐个干翻的
前端·aigc·vite
Bigfish_coding28 分钟前
前端转agent-第一周【python】-02 FastAPI与Pydantic实战(TS/JS视角)
前端
秃头网友小李29 分钟前
前端难点:Vue3 响应式遇上 Three.js / ECharts —— 为什么要用 shallowRef?
前端·vue.js
梦曦i31 分钟前
Vite插件开发框架:14个实用插件与完整工具包
前端
KaMeidebaby32 分钟前
卡梅德生物技术快报|biotin 生物素标记抗体全流程
前端·人工智能·算法·数据挖掘·数据分析
VitoChang32 分钟前
前端也能快速入门后端! NestJS前台和后台的Auth认证
前端·后端
TheITSea33 分钟前
一、React初体验:搭建、解析现代开发环境
前端·react.js·前端框架