mm_machine
Version:
这是超级美眉框架机制构建辅助模块,用于快速构建一个机制,支持动态加载、热更新、模块管理等功能,并具有增强的错误处理和现代JavaScript特性支持。
214 lines (195 loc) • 6.3 kB
Markdown
# 方法清单文档
## 1. index.js - Index类方法
### 构造函数
- **constructor(scope, dir_base)** - 初始化Index类实例
- `scope`: 作用域(同时作为检索的后缀名)
- `dir_base`: 模块目录
### 私有方法
- **_execute(module, method, params)** - 执行模块方法
- `module`: 模块对象
- `method`: 方法名称
- `params`: 参数数组
- 返回: Promise<any> - 执行结果
### 公共方法
- **clear()** - 清除接口缓存
- **load(dir, cg, file)** - 加载项
- `dir`: 文件路径
- `cg`: 配置参数
- `file`: 配置文件
- 返回: Promise<Object|null> - 加载的驱动或配置对象
- **loads(list)** - 加载列表
- `list`: 文件列表
- 返回: Promise<void>
- **sort()** - 排序接口列表
- **update_before(dir)** - 更新前钩子方法
- `dir`: 目录路径
- **update_after(dir)** - 更新后钩子方法
- `dir`: 目录路径
- **updateConfigAll(searchPath, accurate)** - 更新所有配置
- `searchPath`: 检索路径
- `accurate`: 精准路径标志
- 返回: Promise<void>
- **updateConfigHave(dir)** - 更新已有配置文件
- `dir`: 目录路径
- 返回: Promise<void>
- **updateConfig(dir, accurate, clear)** - 更新配置
- `dir`: 检索目录
- `accurate`: 精准路径标志
- `clear`: 是否清除现有配置
- 返回: Promise<void>
- **update_script()** - 更新JS脚本
- 返回: Promise<void>
- **update_main(dir, accurate, loadJS, clear)** - 更新主逻辑
- `dir`: 检索路径
- `accurate`: 精准路径标志
- `loadJS`: 是否加载JS
- `clear`: 是否清除现有配置
- 返回: Promise<void>
- **update(dir, accurate, loadJS, clear)** - 完整更新流程
- `dir`: 检索路径
- `accurate`: 精准路径标志
- `loadJS`: 是否加载JS
- `clear`: 是否清除现有配置
- **get(name)** - 查询配置项
- `name`: 配置项名称
- 返回: Object|null - 配置项对象
- **set(name, cg)** - 设置配置项
- `name`: 配置项名称
- `cg`: 配置对象
- 返回: Boolean - 是否设置成功
- **save()** - 保存所有配置
- 返回: Boolean - 是否保存成功
- **add(config)** - 添加插件
- `config`: 配置对象
- 返回: Promise<Object|null> - 新添加的插件对象
- **del(name)** - 删除插件
- `name`: 插件名称
- 返回: Promise<Boolean> - 是否删除成功
- **load(name)** - 加载插件(重载版本)
- `name`: 插件名称
- 返回: Promise<Object|null> - 加载的插件对象
- **unload(name)** - 卸载插件
- `name`: 插件名称
- 返回: Promise<Boolean> - 是否卸载成功
- **reload(name)** - 重新加载插件
- `name`: 插件名称
- 返回: Promise<Object|null> - 重新加载的插件对象
- **loadFile(file, create)** - 通过文件加载配置
- `file`: 文件名
- `create`: 不存在则创建标志
- 返回: Promise<Object|null|String> - 加载结果
- **run(name, method, ...params)** - 调用函数
- `name`: 模块名
- `method`: 函数名
- `params`: 参数集合
- 返回: Promise<any> - 执行结果
- **exec(name, method, ...params)** - 执行方法
- `name`: 插件名称
- `method`: 方法名称
- `params`: 参数集合
- 返回: Promise<any> - 执行结果
### 属性
- **Drive** - 默认驱动类,指向Item类
## 2. item.js - Item类方法
### 构造函数
- **constructor(dir, dir_base)** - 初始化Item类实例
- `dir`: 当前目录
- `dir_base`: 模块目录
### 私有方法
- **_remove(module)** - 移除模块
- `module`: 模块对象或路径
### 公共方法
- **setConfig(config)** - 设置配置
- `config`: 配置对象
- **setConfig_after()** - 设置配置后钩子方法
- **newScript(file)** - 新建脚本文件
- `file`: 目标文件路径
- **unloadScript(file)** - 卸载脚本
- `file`: 脚本文件路径
- **reloadScript()** - 重新加载脚本
- **unload()** - 卸载钩子方法
- **unload_after(remove)** - 卸载之后处理
- `remove`: 是否删除文件
- **loadScript(file, name)** - 加载脚本
- `file`: 文件路径
- `name`: 函数名
- 返回: Object|null - 加载的模块对象
- **newConfig(file)** - 新建配置文件
- `file`: 目标文件路径
- **loadFile(file, name)** - 加载配置文件
- `file`: 文件路径
- `name`: 配置项名称
- 返回: Object|null - 配置对象
- **delDir()** - 删除目录
- **removeFile()** - 删除配置和脚本文件
- 返回: String|null - 错误消息
- **loadConfig(configData, name)** - 载入配置
- `configData`: 配置对象或配置路径
- `name`: 配置名称
- **load_before()** - 加载前处理
- **load()** - 加载处理
- **reload()** - 重载配置和脚本
- **save()** - 保存配置
- **main(...params)** - 主要执行函数
- `params`: 参数集合
- 返回: Promise<any> - 执行结果
- **run(...params)** - 运行主函数
- `params`: 参数集合
- 返回: Promise<any> - 执行结果
- **exec(method, ...params)** - 调用函数(核心执行方法)
- `method`: 函数名
- `params`: 参数集合
- 返回: Promise<any> - 执行结果
## 3. item.js - 全局方法
- **$.require(file, func)** - 增强require函数,支持热更新
- `file`: 文件路径
- `func`: 回调函数
- 返回: Object - 加载的模块
- **$.loadJson(file, func)** - 增强JSON加载函数,支持热更新
- `file`: 文件路径
- `func`: 回调函数
- 返回: Object - 解析的JSON对象
## 方法命名规范检查
### 符合规范的方法名(小驼峰)
- clear
- load
- loads
- sort
- updateConfigAll
- updateConfigHave
- updateConfig
- get
- set
- save
- add
- del
- unload
- reload
- loadFile
- run
- exec
- setConfig
- newScript
- unloadScript
- reloadScript
- loadScript
- newConfig
- loadFile
- delDir
- removeFile
- loadConfig
- main
### 符合规范的时态方法名
- update_before
- update_after
- setConfig_after
- unload_after
- load_before
### 需要注意的方法名
- **updateScript** - 已从update_script修改为符合小驼峰命名规范
- **update_main** - 保持不变,因为_main属于时态方法命名格式(main表示主逻辑)
## 重复方法名
在index.js中发现两个同名的load方法:
1. `load(dir, cg, file)` - 加载项
2. `load(name)` - 加载插件
建议重命名其中一个以避免混淆。