如何用集合存储路径片段和类配合编写创建工具

星芳大大_8663

星芳大大_8663

2026-06-04

922人浏览

原创

核心是将路径可变部分抽象为结构化数据并用类封装创建逻辑:用set管理合法模块名、map映射模板类型到后缀,pathbuilder类解耦路径生成要素,creator类驱动文件创建,实现高复用与易维护。

如何用集合存储路径片段和类配合编写创建工具

用集合存储路径片段、配合类来编写创建工具,核心是把路径的可变部分抽象为结构化数据,再通过类封装创建逻辑,提升复用性与可维护性。关键不在“存路径”,而在“怎么组织路径变化规则”和“如何驱动创建行为”。

用 Set 或 Map 管理路径片段,避免硬编码

路径常由固定前缀 + 可选模块 + 文件类型组成(如 /src/pages/home/index.tsx)。直接拼接字符串易出错、难扩展。推荐用 Set 存储合法模块名、用 Map 映射模板类型到路径后缀:

  • const validPages = new Set(['home', 'user', 'settings']) —— 控制哪些页面允许被创建
  • const templatePaths = new Map([['react', '/index.tsx'], ['vue', '/index.vue']]) —— 不同框架对应不同文件结构
  • 检查输入时先查 validPages.has(pageName),再查 templatePaths.has(framework),失败则提前报错

设计路径生成器类,封装组合逻辑

别让路径拼接散落在命令行参数处理或文件写入处。建一个 PathBuilder 类,把“根目录 + 模块 + 类型 + 后缀”等维度解耦:

Javascript Sdk
Javascript Sdk

用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。

下载
  • 构造时传入项目根路径(如 process.cwd())和基础配置对象
  • 提供 forPage(name: string) 方法返回新实例,内部校验并缓存模块名
  • 提供 withFramework(fw: string) 和 asComponent() 等链式方法,逐步补全路径要素
  • 最终调用 build() 返回完整绝对路径,例如 /my-app/src/pages/user/UserCard.tsx

搭配 Creator 类驱动实际创建动作

PathBuilder 负责“去哪里”,Creator 负责“放什么”。它应持有模板引擎(如 lodash.template 或简单字符串替换)、文件系统操作封装(如 fs-extra),并接收 PathBuilder 输出的路径:

  • 构造时注入模板源(如读取 templates/react-component.txt)和变量映射规则(如 { componentName: 'UserCard' })
  • create(path: string) 方法自动创建父目录(mkdirp)、渲染模板、写入文件
  • 支持批量创建:传入多个 PathBuilder 实例,统一执行,避免重复读模板

命令行集成时,用集合做参数校验和提示

在 CLI 层(如用 commander 或 oclif),利用已定义的 Set 提供自动补全和错误提示:

  • 选项 --page <name></name> 的 choices 直接设为 [...validPages]
  • 解析参数后,若 page 不在集合中,抛出清晰错误:Unknown page: "dashboard". Valid: home, user, settings
  • 运行 --list-pages 时直接打印 [...validPages].join(', '),无需额外维护文档字符串

不复杂但容易忽略:集合不是只为去重,更是业务规则的显式声明;类不是为了套设计模式,而是把“路径怎么来”和“文件怎么建”这两件事真正分开,后续加微前端子路径、国际化目录(/locales/zh-CN/)或测试文件(.test.tsx)时,改一处、测一遍,不会牵一发而动全身。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

9157

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

6322

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

5652

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

1004

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

848

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1196

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2409

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

19751

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

1095

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.5万人学习