仍然是简单一句话,uView Pro Starter 一键清理 Skill 发布

1. uView-Pro-Starter 是什么?

有些人可能不了解 uView-Pro-Starter 快速启动项目,它是一个基于 Vue 3 + uni-app + TypeScript 的跨端快速起步模板,内置了 uView Pro 组件库,开箱即用,支持 App、H5、各种小程序。

uView-Pro-Starter 是一个MIT协议的开源项目,可以免费使用:

文档:starter.uviewpro.cn/

具体功能如下:

模板自带的东西挺全的:

  • 5 个 Demo 演示页(组件展示、创建演示、HTTP 请求示例、Pinia 示例、uView Pro 介绍)
  • 6 个 about 二级页(个人介绍、贡献者、FAQ、指南、开源协议、设置)
  • 多语言(中英文,完整词条)
  • 多主题(亮色、暗色、紫色、绿色、橙色)
  • 自定义 TabBar(基于 Pinia 状态管理)
  • Http 拦截器(请求/响应拦截)
  • API 演示层(基于 uni.request 封装)
  • Pinia 状态管理 + 持久化插件

这些功能放在一起,对想快速了解模板能力的人很友好,但在实际做项目的时候,你可能只需要其中三成。多出来的部分占体积、干扰注意力、还可能引入不必要的依赖。

2. 拿到 Starter 模板,想删但删不动?

很多人拿到 uView-Pro-Starter 的第一反应是:东西不少,但用不上。Demo 演示页、about 二级页、多语言、多主题、自定义 TabBar、Http 拦截器、Pinia、API 演示层......这些对了解模板能力有帮助,对正式做项目就是负担。

你想清掉一部分,开始手动删,很可能会出现以下问题:

  • 删了 demo 页,首页入口点进去白屏------忘了删 home.vue 里的入口数组。
  • 补上之后,构建又报 Cannot find module '@/stores/tabbar'------删了 Pinia 但自定义 TabBar 还在引用。
  • 把 TabBar 也删了,pages.json 里的原生 tabBar 配置还指向不存在的页面。

来来回回折腾快一个小时,type-check 才通过。

有时候这不是你粗心,是 Starter 模板本身分了层,模块之间有依赖,删一个模块,得连带删掉所有引用它的地方,漏一个就编译失败,每次起新项目都要手动来一遍,或许太费劲了。

3. 我为什么放进去,又为什么有人要删?

当初做这个 Starter 的时候,我把这些东西全塞进去,是有考量的。

一个起步模板要解决两个问题:

  • 一是"能不能跑"
  • 二是"能干什么"

很多模板只给了空架子,你打开看什么都没有,还得翻文档查组件怎么用,所以我最初的想法是把 5 个 Demo 演示页放进去------组件展示、创建演示、HTTP 请求示例、多主题、多语言、Pinia 示例、uView Pro 介绍等等。

你拉下来跑一下,十分钟就知道这个模板有哪些能力、每个组件长什么样。about 下的 6 个二级页也是同理:个人介绍、贡献者、FAQ、指南、开源协议、设置,让你了解项目背景和组件库全貌。

但问题可能也出在这,模板是给所有人看的,项目是给你自己用的。模板需要展示"我能做什么",项目需要的是"我只要什么"。你做项目的时候,Demo 页不会上生产,多语言可能只做中文,多主题可能只用一套,Pinia 可能用不到,自定义 TabBar 可能不需要。这些当初帮你了解模板能力的东西,到了正式项目里就成了多余。

4. 为什么需要 project-cleaner

所以我做了这个 Skill,就是因为每个用 Starter 的人都会面临"删不删、怎么删、删了会不会挂"的问题。

project-cleaner 解决的痛点很具体:

  1. 不知道删什么会牵连什么 ------删 Pinia 要连带删 TabBar,删多语言要先内联 t() 再删目录,卸 z-paging 要同步删 tsconfig.json 的类型引用。这些关联靠手动排查太累。
  2. 删除顺序不对会中间态崩 ------先删了 stores/app-tabbar 就引不到了,你连验证都做不了。
  3. 清理后不知道是否干净------删完了哪些文件还残留引用?哪些路由指向了不存在的页面?type-check 能兜住一部分,但不够全面。
  4. 每次起新项目都要来一遍------手动清理没法复用,这次删完下次还得重新踩坑。

project-cleaner 技能把这些事情都自动化了。它不是帮你删文件,它能帮你安全地、按依赖关系、可验证地删文件。

5. 能清理什么:11 个清理点

Skill 提供 11 个清理点,分成四组。每个都能单独开关,你勾选要删的,其余保留。

演示内容

清理点 默认 删什么
Demo 演示页 pages/home/ 下 5 个 demo 页面 + home.vue 入口引用 + pages.json 路由 + locale 词条
about 二级页 pages/about/ 下 6 个子页(me/contributors/faq/guide/license/settings)+ about.vue 入口引用 + 路由 + 词条

工程能力

清理点 默认 删什么
多语言 先把 t('key') 内联为硬编码中文,再删 locale/useLangmain.ts locale 配置
多主题 uview-pro.theme.ts + main.ts theme 配置;App.root.vue 的 config-provider 保留(承载全局 toast)
自定义 TabBar stores/tabbar.ts + app-tabbar/ 组件 + app-page.vue 的 show-tabbar 分支 + pages.json 原生 tabBar 配置
Http 拦截器 http.interceptor.ts + main.ts httpPlugin;组件内置的 http 仍可用
Pinia 状态管理 stores/ + main.ts 挂载 + 卸 pinia 依赖;自动连带删 pinia-demo 页和自定义 TabBar

依赖与文档

清理点 默认 删什么
API 演示层 api/ 目录(当前无页面引用,安全)
冗余依赖与死常量 z-paging(未用)+ 同步删 tsconfig.jsonz-paging/types 类型引用 + 删 constant.tsGUIDE_*/ONBOARDING 死常量
文档同步 按已删模块更新 docs/ARCHITECTURE.md 模块清单

维护

清理点 默认 做什么
更新 uView Pro 组件库 更新 同步 constant.ts 版本号,给出 pnpm add uview-pro@latest 命令由你执行

默认值不是随便定的------演示内容和 API 层默认删,因为正式项目基本用不上;

TabBar、Http、Pinia 默认留,因为这三样你可能要接着用。

当然,全部可以按需调整,随意定制你想要留的,想要删除的。

6. 依赖感知:删什么自动连带删什么

这是 project-cleaner 的核心。每个清理模块都记录了"删了它之后还会牵动哪些文件",勾选时自动连带处理。

举几个典型的联动:

删 Pinia ------不是删掉 stores/ 目录就完了。pinia-demo.vue 页面引用了 useCounterStoreapp-tabbar 依赖 useTabbarStoremain.ts 里有 app.use(store) 挂载,package.json 有 pinia 依赖。这些全部要一起处理。Skill 会自动连带删 pinia-demo 页和自定义 TabBar。

删多语言 ------不是直接删 locale/ 目录。项目里到处都是 t('home.title') 这种调用,直接删目录页面就全崩了。Skill 先跑一个内联脚本,把 t('key') 替换成硬编码中文,再删 locale 目录和相关 import。

删自定义 TabBar ------删了组件层的 TabBar,配置层的原生 tabBar 也要一起删。pages.json 里整个 tabBar 块(含 list)都要移除。theme.json 不动,它是 uni-app 原生主题,跟自定义主题是两回事。

卸 z-paging ------package.json 卸载了还不够,tsconfig.jsoncompilerOptions.types 里还挂着 z-paging/types,不删掉的话 vue-tsc 会报 Cannot find type definition file

7. 怎么用:6 步流程

第 1 步:基线快照

先跑一遍残留扫描脚本,记下来清理前项目里有哪些符号、路由、词条是合法的。这一步的目的是建立对比基线------清理完再扫一遍,留没留残留一眼就知道。

第 2 步:多选清理项

Skill 按上面四组列出 11 个清理点,你勾选要删的。每个都有默认值,默认值参考了"正式项目通常保留什么"。勾选完后,对破坏性操作(删目录/依赖/文件)会二次确认,把待删文件清单列出来。

第 3 步:冲突校验

如果你勾的组合有问题,Skill 会提示。比如你勾了"删 Pinia"但没勾"删自定义 TabBar"------app-tabbar 强依赖 store,不一起删会编译失败。Skill 会提示你二选一或自动连带。

第 4 步:按安全顺序执行

不是随便删,而是按"先删页面内容、再收敛工程能力"的顺序来。10 个模块的执行顺序是:

  1. Demo 演示页 + about 二级页(先删内容)
  2. 去多语言(先内联再删)
  3. 去多主题
  4. 去自定义 TabBar
  5. 去 Http 拦截器
  6. 去 Pinia(连带删 TabBar 和 pinia-demo)
  7. 去 API 演示层
  8. 去冗余依赖与死常量
  9. 文档同步
  10. 更新组件库

这样保证删到中途项目也能编译通过,你随时可以验证。

第 5 步:复扫与构建验证

清理完了不算完,得验证。验证分四层:

  1. 残留扫描(秒级):扫描坏路由、悬空 import、残留符号、locale 缺键,退出码 0 才算过
  2. 类型检查 (十几秒):pnpm run type-check,无类型错误
  3. 构建验证 (几分钟):pnpm run build:h5,构建成功
  4. 运行时抽查 (可选):pnpm dev:h5,打开首页和关于页看看

第 6 步:汇报

Skill 最后列出"已删除/已修改"清单,你可以逐项对账,确认没有误删。

8. 清理前后长什么样

看一下清理前后的项目结构对比:

清理前,src/ 下有 pages/home/ 5 个 demo、pages/about/ 6 个子页、stores/ 3 个 store、api/locale/composables/common/ 下还有 http.interceptor.tsuview-pro.theme.ts

清理后(勾选全部删除项),src/ 只剩:

  • pages/home/home.vue + pages/about/about.vue(两个核心页面)
  • common/constant.ts + common/style.scss(常量和全局样式)
  • components/app-page/(页面布局组件)
  • main.ts + App.vue + App.root.vue(入口)
  • pages.json + theme.json + manifest.json + uni.scss(配置)

package.jsonpiniapinia-plugin-persistedstatez-paging 全部卸载。tsconfig.jsontypes 只保留 uview-pro/types。type-check 和 build:h5 全绿。

9. 总结

总而言之,project-cleaner 做的事情不复杂:把"删 Starter 模板里用不上的东西"这件事从手动一小时变成勾选确认十分钟。最关键的是删完还能编译------依赖感知、安全顺序、验证闭环,这三样保证你不会删出一个跑不起来的项目。

如果你正在用或打算用 uView-Pro-Starter 这个 uni-app 起步模板,每次新项目都要清理一遍演示代码,可以试试这个 Skill,只需勾选你要删的,剩下的交给自动化。

相关推荐
邱海龙1 小时前
丘孔人工智能最前沿-2026年09月09日-OpenAI称AI解开90年数学难题,数学界却吵翻了
人工智能
数字新视界1 小时前
国产化动环技术提升数据中心监控效率与安全性
大数据·人工智能·数据中心·微模块机房·模块化机房
尼给路达哟1 小时前
Agent学习笔记
人工智能
码农飞哥1 小时前
企业级RAG系统架构详解
java·人工智能·ai编程·rag·ai应用
薛定e的猫咪1 小时前
(ICML2024)QSM:基于 Q 函数梯度对齐分数场的扩散模型离策略强化学习
人工智能·深度学习·算法
xinshuGEO1 小时前
文旅GEO和传统SEO的区别:五个维度对比
人工智能
林澈在路上1 小时前
能做DJ的AI写歌软件推荐:MELO音乐对比Suno v6
大数据·人工智能·github·音视频·音频
前端snow1 小时前
ai agent --- AGUI 协议,流式渲染组件
人工智能·后端