开发Alfred JS SDK - CLI开发
之前已封装了Alfred sdk,使用方式是在具体的workflow js中,手动安装包,然后require对应模块。常用的script filter构建,筛选,quicklook都已封装了fn,使用起来还算省事。但还没有CLI支持,为了进一步提升效率,CLI的开发可以驱动出来了。这里就mark下, 些许体会。
解决痛点
- 利用CLI可以自动安装Alfred SDK包
- 生成缺省或者指定的JS文件,代码层面也内置了模块装载,这些都不需要手动写了。
这样以后只需要npx @stacker/alfred-utils init
,然后打开index.js进行业务编写即可。
CLI原理
bin
package.json中bin字段定义的命令将会在安包阶段,自动安装到系统path环境变量下,安装后便可直接使用。
bin下支持单个shell或者多个命令定义。
npx直接使用包bin时,对于bin名称不同,会有区别
- bin下的命令名称如果与包名一致,则在npx方式使用时可以直接使用包名即可,比如
npx @stacker/alfred-utils --help
,可以发现执行的即同名命令
注意这里的一致排掉@scope,包名@stacker/alfred-utils
,bin命令为alfred-utils
即一致 - 如果bin下的命令与包名不同,则使用时需要明确命令,比如
npx -p @stacker/alfred-utils alfred-utils-test --help
- bin下的命令名称如果与包名一致,则在npx方式使用时可以直接使用包名即可,比如
如果是全局安包后,则无论是哪个bin,直接输入bin名称即可使用。
模版
CLI帮助生成部分代码,做的已经是脚手架的事了,基本的原理即CV样本代码,同时根据输入的参数做部分替换工作。
写在最后
- 借助该CLI,以后开发workflow会更高效了。
- 以后只要出现了代码层重复问题,则只需要不断丰富该SDK即可。