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

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,或者贡献代码,帮助我们完善此依赖,谢谢!

http://www.lryc.cn/news/2378944.html

相关文章:

  • 系统漏洞扫描服务:维护网络安全的关键与服务原理?
  • nlf loss 学习笔记
  • 【Redis】零碎知识点(易忘 / 易错)总结回顾
  • 基于three.js 全景图片或视频开源库Photo Sphere Viewer
  • LangPDF: Empowering Your PDFs with Intelligent Language Processing
  • OpenVLA (2) 机器人环境和环境数据
  • 代码复现5——VLMaps
  • Ocean: Object-aware Anchor-free Tracking
  • 计算机网络(1)——概述
  • 刘家祎双剧收官见证蜕变,诠释多面人生
  • Axure制作可视化大屏动态滚动列表教程
  • MATLAB实现振幅调制(AM调制信号)
  • LLM-Based Agent综述及其框架学习(五)
  • 6.1.1图的基本概念
  • Linux面试题集合(6)
  • 时间筛掉了不够坚定的东西
  • Python集合运算:从基础到进阶全解析
  • jvm安全点(二)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞
  • YOLOv7训练时4个类别只出2个类别
  • 【论文阅读】针对BEV感知的攻击
  • 18.中介者模式:思考与解读
  • flutter 配置 安卓、Ios启动图
  • 基于朴素贝叶斯与 LSTM 的假新闻检测模型对比分析
  • 【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
  • 副业小程序YUERGS,从开发到变现
  • 计算机视觉与深度学习 | Python实现EMD-VMD-LSTM时间序列预测(完整源码和数据)
  • 基于LLM合成高质量情感数据,提升情感分类能力!!
  • 网络检测工具InternetTest v8.9.1.2504 单文件版,支持一键查询IP/DNS、WIFI密码信息
  • SpringBoot中使用Flux实现流式返回的技术总结
  • 【网络编程】十、详解 UDP 协议