supos
v0.2.31
Published
帮助管理SupOS平台表单服务和可编程组件
Downloads
123
Maintainers
Readme
supos
supos
git push pull 的形式管理平台以下概念
- 服务脚本
- 可编程组件
特点
- 多平台开发时,
supos
管理多个平台的服务脚本和可编程组件 - 结合 代码开发工具 + Git 可协同管理服务脚本和可编程组件
- 可编程组件改动看效果时,无需频繁提交代码。只需
supos ext watch
帮助自动提交可编程组件 - 表单转 DDL ,辅助掌控全局
Install
$ npm install -g supos
Use Example
$ supos debug
? 选择【A表单】的服务进行调试? yes
***【A表单】下所有服务***
? 请选择服务!
> 服务名称:serviceA(Integer int,Long long,Float float,Double double,Boolean bool,String str)
------------------------------
? int(INTEGER)> 1
? long(LONG)> 1
? float(FLOAT)> 1
? double(DOUBLE)*> 1
? bool(BOOLEAN)> true
? str(STRING)*> 123
------------------------------
# 以下为服务执行的输出日志和返回结果
#略
获取帮助
您可以使用以下命令获取帮助信息:
查看全局帮助信息:
supos --help
查看特定命令的帮助信息(例如
remote
命令):supos remote --help
查看子命令的帮助信息(例如
remote add
子命令):supos remote add --help
每个命令的帮助信息都包含了详细的使用说明和示例。
Usage
1. init config
$ supos init
? 重置将初始化所有配置文件,是否重置[N]! yes
SUCCESS 已成功初始化....
2. add your remote address
$ supos remote add <code> -m <url> -u <username> -p <password>
$ supos remote add pdd -m http://127.0.0.1:8080 -u admin -p pwd123
pdd,admin 请记住您的平台编号和当前账户!
3. config your default remote
$ supos remote login pdd
SUCCESS 已切换成平台pdd,地址为:http://127.0.0.1:8080
4. login your remote
$ supos remote login
SUCCESS 用户登录成功!
#or
$ supos login
SUCCESS 用户登录成功!
5. pull remote all template and service to loacl env
$ supos template init
将重新拉取所有表单及所有表单服务,成功后需重新配置默认工作的表单!
SUCCESS 车间管理-workshopManage server total:1
---------------- 查询车间数据-queryAll-(String factoryId)==MD5: 66d11897e372ad2b01733ef1cebd4a84
rsnyc 车间管理-workshopManage use time 3425
6. Select the default template to work under it
$ supos template
#1. 先有个可供选择的表单列表,可进行搜索。
? 请选择工作区的表单模板!
> A表单
B表单
C表单
(Use arrow keys to reveal more choices)
A表单
#2.选择后会输出
SUCCESS 您选择了【A表单】
#3. 最后完整的日志
? 请选择工作区的表单模板! A表单
SUCCESS 您选择了【A表单】
7. 调试模板下的服务
$ supos debug
8.
初始化平台无关级别的配置
supos ext init
拉取所有可编程组件
9. For more features, please use Supos -h
$ supos -h
#略 更多详细用法请参考各命令的帮助信息,例如 `supos service --help`。
TODO
服务
[ ] 物模板服务支持
[ ] 表单模板
- [ ] 考虑使用 Sql 同步 表单模板,引导形成 一个模式。
[X] 可添加服务
- [X] 可单独添加服务参数
[x] 可删除服务
[x] 可单独删除参数,通过修改服务删除 supos service update -i
[x] debug 可选记录历史传参
- [x] 在该命令下添加option 记录是否记录历史。 -[x] 考虑在debug时是同样加option去选择历史参,还是提前确认什么模式去选择历史参。
[x] 按职责拆分代码
[ ] ~~切换平台后将之前登录的平台主动退出去~~
[ ] 提供平台级迁移功能
- [ ] APP级
- [ ] 表单级
- [ ] 属性
- [ ] 服务级
[ ] 可编程
- [ ] push 代码时,拉取 libs 查看更新时间,没更新就不进行上传,加速上传
[ ] 其他
如何与 git 相结合
[x] 考虑 process.cwd() 定位,引起用户在别的目录下执行,会引起问题
功能逐渐变多 objectHelp 代码需职责拆分
优化建议
使用
inquirer
库来实现交互式命令行界面,以提高用户体验。使用
axios
库来处理 HTTP 请求,以提高性能和可靠性。使用
chalk
库来添加颜色和样式,以提高可读性和用户体验。使用
ora
库来显示加载动画,以提高用户体验。使用
commander
库来处理命令行参数,以提高用户体验。使用
fs
库来处理文件系统,以提高用户体验。使用
path
库来处理文件路径,以提高用户体验。使用
os
库来处理操作系统,以提高用户体验。使用
crypto
库来处理加密,以提高用户体验。根据您提供的代码库信息,我对extensions类的优化有以下建议:
- 代码结构优化:
- 将lib/extensions.js文件拆分成多个smaller的模块,每个模块负责特定的功能。例如:
- initExtensions.js: 处理初始化相关的函数
- pullExtensions.js: 处理拉取组件相关的函数
- pushExtensions.js: 处理推送组件相关的函数
- buildExtensions.js: 处理构建依赖相关的函数
- 代码结构优化:
这样可以提高代码的可读性和可维护性。
- 错误处理优化:
- 在lib/extensions.js中,使用更具体的错误类型,而不是简单地抛出字符串。创建自定义错误类,如ExtensionError,以便更好地处理和区分不同类型的错误。
- 错误处理优化:
配置管理优化:
- 将硬编码的配置项(如bulitInDependencies, ignoreFileArr等)移到单独的配置文件中,便于集中管理和修改。
异步操作优化:
- 考虑使用Promise.all()来并行处理一些独立的异步操作,提高性能。例如,在initAppExtensions函数中,可以并行处理libs和controls的拉取。
日志记录优化:
- 使用更结构化的日志记录方式,考虑引入专门的日志库(如winston),以便更好地管理和分析日志。
测试覆盖率提高:
- 在tests/supos.test.js中添加更多针对extensions功能的单元测试和集成测试,提高代码的可靠性。
依赖注入考虑:
- 考虑使用依赖注入的方式来管理外部依赖(如DB, ConfigDB等),这样可以提高代码的可测试性和灵活性。
代码复用优化:
- 提取一些常用的操作为工具函数,放在单独的utils.js文件中,以减少代码重复。
类型检查引入:
- 考虑使用TypeScript或Flow来引入静态类型检查,可以提前发现潜在的类型错误。
文档完善:
- 为主要的函数和模块添加详细的JSDoc注释,便于其他开发者理解和使用代码。
性能优化:
- 使用性能分析工具来识别可能的性能瓶颈,特别是在文件操作和网络请求方面。
安全性提升:
- 检查所有的文件操作和网络请求,确保它们都经过适当的安全处理,防止潜在的安全漏洞。
refactor 内容对比时 前后hash 本地DBhash 对比平台内容 hash,一致时,将本地新内容推送至平台
Notice
- 添加 5x 版本平台需自己找到加密后的密码进行添加
LICENSE
MIT