当前位置: 首页 > Web前端 > HTML

且看这个Node全栈框架,实现了个Cli终端引擎,可无限扩充命令集

时间:2023-03-28 18:54:54 HTML

而看看这个Node全栈框架,它实现了一个Cli终端引擎,可以无限扩展命令集的Cli终端工具就不一样了。更准确的说,CabloyJS提供了一个Cli终端引擎,它由一套Cli终端运行机制+许多命令集组成。CabloyJS是一个基于模块化系统的全栈框架,因此命令集也是由特定的模块提供的。因此,我们可以通过安装各种模块来动态添加一组可以运行的命令,从而使CabloyJS的Cli终端变得异常强大和功能丰富。无限扩展同时支持开发环境和生产环境:当我们在命令行输入命令时,系统会自动调用后端服务的API接口执行特定的脚本逻辑。后台服务可以是本地运行的开发服务,也可以是远程运行的生产环境,简化系统管理和运维工作:正是因为生产环境可以使用Cli终端,很多后台管理任务可以通过API接口暴露,直接通过命令行驱动完善的权限控制:所有后端服务暴露的API接口都使用资源授权机制进行控制,Cli端使用开放认证进行控制令牌。Cli终端的使用规范如下:$npmruncli[command][args]--[options]-commandnamingconvention:由于command是由业务模块提供的,为了进一步规范管理,提供的命令也分组在业务模块内。因此,命令命名约定如下:moduleName:groupName:commandName例如模块a-clibooster提供了一个groupcreate,groupcreate提供了一个模块命令,那么完整的命令命名为:a-clibooster:create:模块特殊约定:为了简化命令的输入,特做了如下约定:如果模块名为a-clibooster,则不需要输入;如果组名是默认的,则不需要输入。比如全称是a-clibooster:default:list::lista-clibooster:create:module:create:moduletest-party:default:demotest-party::demo-args命令后是否可以跟参数,以及后面有多少个参数,取决于具体的命令,例如:#安装模块test-flow和test-note$npmruncli:store:synctest-flowtest-note-options命令后是否可以跟选项and可以跟随多少个选项也由具体命令决定,例如:#Addmoduletest-module1tosuitetest-suite1$npmruncli:create:moduletest-module1----suite=test-suite1-help如果我们不知道某个命令如何使用,可以直接打印出帮助信息,例如$npmruncli:create:module----help-version也可以查询某个命令的版本号,对于示例:$npmruncli:create:module----version-listcommands如果你想查看当前系统支持多少条命令,你可以执行following:#列出所有命令$npmruncli::list#列出模块test-party提供的命令$npmruncli::list----module=test-party#列出creategroupin提供的命令模块a-clibooster$npmruncli::list----module=a-clibooster--group=createbuilt-incommandCabloyJSviamodulea-clibooster内置了大量常用的命令,如下:命令说明::list列出所有命令:token:add添加开放认证Token:token:delete删除开放认证Token:token:list列出所有开放认证Token:tools:babel编译JS文件:tools:icons处理图标模块:create:suite创建一个新套件:create:module创建一个新模块:create:atom创建一个新的atomtype:create:controller创建一个新的控制器(包括一个Route、Controller、Service的一组文件):store:sync从Cabloy安装suites/modulesstore:store:publish将本地开发的suites/modules发布到Cabloystore速记命令CabloyJS还提供了更多的速记命令,大家可以体验一下你自己,它肯定会显着提高开发效率cli测试方::$npmrunclitest-party:default:HowtocreateaClicommand如果我们想创建自己的Cli命令,也很简单,看文档:HowtocreateaClicommand相关链接文档:https://cabloy.com/GitHub:https://github.com/zhennann/c...