Skip to content

插件

基础->插件开发 小节,已经介绍了插件开发的方法和注意事项,这里主要是介绍一些为什么开发插件,什么时候开发插件。

业务插件

首先,如果没有插件, Semo 内置的几个命令对大家也没有多大用处,所有的价值都需要通过扩展 Semo 释放,其中插件就是最重要的一种形态。插件里最常见的就是定义命令,这不奇怪,因为 Semo 本身就是个命令,也被设计为命令行开发框架。这里的重点是命令可以定义到插件中,而插件作为独立的 Node 模块可以发布到 npm 或公司自建的 registry,从而使得一个命令可以被安装到多个项目。

我们很难保证一个项目可以在公司所有的项目中都有用,但是相同业务线的不同项目中是有可能有交集的,我们可以通过对插件名进一步规范来划分插件的适用范围,例如:

semo-plugin-[公司标识]-[业务线标识]-[用途标识]

创新插件

另外,之前的文档中也提到,我们也可以开发非业务属性的插件,只要自己觉得有趣,有想法,都可以试试,例如:

semo-plugin-music-download
semo-plugin-video-download
semo-plugin-todolist
semo-plugin-puzzle-me
semo-plugin-convert-a-to-b

上面只是随便起一些名字,其实这些插件还都不存在。

本地插件

不是所有的插件都必须要发布到 npm 的,我们可以开发很多只有自己知道的插件,满足自己的需求,这种插件一般都是放到 ~/.semo/node_modules 的,这样可以在当前账户的任意位置调用。

社区插件

如果对自己的插件作品很满意,想分享给其他人使用,就可以把插件发布到 npm 上,然后告诉别人来用。当然,由于 Semo 只是充当一个命令调度的作用,其实很大概率上你不必非要基于 Semo 来写这种 npm 包,除非你是 Semo 的粉丝 ^_^。

那么目前都有哪些社区插件了呢,目前的社区还没怎么建起来,插件还比较少,包括但不限于以下插件:(这里的核心指的是放到核心仓库和 @semo/core 一起维护的插件)

  • semo-plugin-application,【核心】定义了一个 Node 项目中可以使用的,给项目添加子命令的规范。
  • semo-plugin-script,【核心】定义了一个 Node 项目中可以使用的脚本规范。
  • semo-plugin-plugin,【核心】提供了 Semo 全局插件管理命令行工具。
  • semo-plugin-shell,【核心】提供了一个简单的命令行环境,可以少敲几个字母。
  • semo-plugin-hook,【核心】可以查看钩子相关的信息。
  • semo-plugin-ssh, 【扩展】提供了简单的 SSH 账户管理功能。
  • semo-plugin-read,【扩展】提供了将 URL 转换成 Markdown,进而转换成各种格式的工具。
    • semo-plugin-read-extend-format-wechat 这是 read 插件的一个扩展,提供了微信公众号文章在线编辑器的功能,需要和 read 一起使用。
    • ... 这里可能有很多相关子插件,就不一一列举了。
  • semo-plugin-serve,【扩展】提供了一个简单的 HTTP 服务器的功能,类似于 serve
  • semo-plugin-sequelize, 【扩展】提供了对 Sequelize 的集成以提供数据库的访问能力
  • semo-plugin-redis,【扩展】提供了对 Redis 的集成已提供缓存的访问能力