当前位置: 首页 > news >正文

uniapp自动构建pages.json的vite插件

对于 uniapp 来说,配置 pages.json 无疑是最繁琐的事情,具有以下缺点:

  • 冗长,页面很多时 pages 内容会很长
  • 难找,有时候因为内容很长,导致页面配置比较难找,而且看起来比较凌乱
  • json弊端,因为是 json 文件,配置项提示不友好,而且写注释会报错,也不能写额外的逻辑(比如动态配置等),强 json 格式(键必须有双引号)

于是,我找出了一个优雅的解决方案,请看示例:

vite.config.ts 中配置

// vite.config.ts
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
import uniAutoPages from '@jl15988/uni-auto-pages';
export default defineConfig({plugins: [uniAutoPages({// 主页面mainPage: 'src/pages/index/index'});]
});

pages.config.ts 中配置

pages.config.ts 中的配置与官方 pages.json 的配置几乎一致,相当于仅仅从 json 文件改为了 ts 文件,但是可以忽略 pages 配置,因为会自动构建,除非你想自己配置,subPackages 配置可以仅仅配置 root,然后自动构建 pages。

// pages.config.ts
import {defineAutoPagesConfig} from "@jl15988/uni-auto-pages";export default defineAutoPagesConfig({pages: [],subPackages: [],globalStyle: {navigationBarTextStyle: 'black',navigationBarTitleText: '',navigationBarBackgroundColor: '#F8F8F8',backgroundColor: '#F8F8F8',},// 其他配置项...
});

defineUniPage 页面配置

在页面中可以使用 defineUniPage 来对当前页面单独配置

<template><view>页面内容</view>
</template><script lang="ts" setup>
import { defineUniPage } from "@jl15988/uni-auto-pages";defineUniPage({// 页面配置,会在构建时被提取并写入 pages.jsonstyle: {navigationBarTitleText: '示例页面',navigationBarBackgroundColor: '#007AFF',navigationBarTextStyle: 'white',enablePullDownRefresh: true,}
});
</script>

通过配置 tsconfig.json 可以忽略页面的 defineUniPage 引入

{"compilerOptions": {"types": ["@jl15988/uni-auto-pages"]}
}

配置说明

提供了三种配置方式:

  • 在 pages.config.ts 中配置
  • 在页面中使用 defineUniPage 配置页面

优先级:页面配置 > pages.config.ts 配置

插件配置项说明

配置项类型默认值说明
rootstring项目根目录,默认自动获取当前根目录
entryDirstring‘src/pages’入口目录
mainPagestring‘src/pages/index/index’主页面路径
fileTypesstring[][‘vue’, ‘nvue’, ‘uvue’]文件类型
ignorestring[][‘**/components/**’]忽略路径
outputPathstring‘src/pages.json’输出路径
defaultPageConfigPageConfig{style: {navigationStyle: ‘custom’}}默认页面配置

page.config.ts 配置项说明

配置项类型默认值说明
pagesPagesOptionsPage[][]页面配置,可选,会自动构建,用于自定义页面配置
subPackagesSubPackagesOptions[][]分包配置,可选,可以仅配置 root,会自动扫描,也可以自定义指定页面配置
其他,如 globalStyle、tabBar 等uniapp pages.json,具体参照官方 pages 说明,或参考:pages.tspages.json 配置,与官方 pages.json 一致

仓库、资源、安装、反馈

仓库地址:https://gitee.com/jl15988/uni-auto-pages
npm 地址:https://www.npmjs.com/package/@jl15988/uni-auto-pages

可以执行一下代码安装测试(!!!注意,当前仅测试版本,仅供试用)

npm i @jl15988/uni-auto-pages

欢迎安装测试,并提出问题,可以在仓库提交 Issue,或者贡献代码,帮助我们完善此依赖,谢谢!

相关文章:

  • 前脚收购 Windsurf 后,OpenAI 深夜发布 Codex。
  • 26、思维链Chain-of-Thought(CoT)论文笔记
  • 9.DMA
  • (9)python开发经验
  • 【机器学习】第二章模型的评估与选择
  • 学习笔记(C++篇)—— Day 6
  • 2025 年九江市第二十三届中职学校技能大赛 (网络安全)赛项竞赛样题
  • 数据结构第七章(四)-B树和B+树
  • 从代码学习深度学习 - 词嵌入(word2vec)PyTorch版
  • 兰亭妙微:用系统化思维重构智能座舱 UI 体验
  • HarmonyOS:重构万物互联时代的操作系统范式
  • 【论文#目标检测】End-to-End Object Detection with Transformers
  • WPS PPT设置默认文本框
  • pytorch小记(二十一):PyTorch 中的 torch.randn 全面指南
  • 系统架构设计(十一):架构风格总结2
  • 服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
  • 自动化脚本开发:Python调用云手机API实现TikTok批量内容发布
  • OpenHarmony:开源操作系统重塑产业数字化底座
  • Linux服务器安全如何加固?禁用不必要的服务与端口如何操作?
  • Codex与LangChain结合的智能代理架构:重塑软件开发的未来
  • 大风+暴雨,中央气象台双预警齐发
  • 俄媒:俄乌代表团抵达谈判会场
  • 美国务卿鲁比奥抵达会场,将参加俄乌会谈
  • 郑钦文憾负高芙,止步WTA1000罗马站四强
  • 一图看懂|印巴交火后,双方基地受损多少?
  • 国防部:赖清德歪曲二战历史,背叛民族令人不齿