开发Alfred JS SDK - CLI开发

之前已封装了Alfred sdk,使用方式是在具体的workflow js中,手动安装包,然后require对应模块。常用的script filter构建,筛选,quicklook都已封装了fn,使用起来还算省事。但还没有CLI支持,为了进一步提升效率,CLI的开发可以驱动出来了。这里就mark下, 些许体会。

解决痛点

  1. 利用CLI可以自动安装Alfred SDK包
  2. 生成缺省或者指定的JS文件,代码层面也内置了模块装载,这些都不需要手动写了。

这样以后只需要npx @stacker/alfred-utils init,然后打开index.js进行业务编写即可。

CLI原理

bin

  1. package.json中bin字段定义的命令将会在安包阶段,自动安装到系统path环境变量下,安装后便可直接使用。

  2. bin下支持单个shell或者多个命令定义。

  3. npx直接使用包bin时,对于bin名称不同,会有区别

    1. bin下的命令名称如果与包名一致,则在npx方式使用时可以直接使用包名即可,比如npx @stacker/alfred-utils --help,可以发现执行的即同名命令
      注意这里的一致排掉@scope,包名@stacker/alfred-utils,bin命令为alfred-utils即一致
    2. 如果bin下的命令与包名不同,则使用时需要明确命令,比如npx -p @stacker/alfred-utils alfred-utils-test --help
  4. 如果是全局安包后,则无论是哪个bin,直接输入bin名称即可使用。

模版

CLI帮助生成部分代码,做的已经是脚手架的事了,基本的原理即CV样本代码,同时根据输入的参数做部分替换工作。

写在最后

  1. 借助该CLI,以后开发workflow会更高效了。
  2. 以后只要出现了代码层重复问题,则只需要不断丰富该SDK即可。