npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

supos

v0.2.31

Published

帮助管理SupOS平台表单服务和可编程组件

Downloads

123

Readme

supos

supos git push pull 的形式管理平台以下概念

  1. 服务脚本
  2. 可编程组件

特点

  • 多平台开发时,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