# 项目整合
跟现有业务项目整合是 Zignis
开发的初衷,如果一个项目已经有了自定义的用着还不错的命令行工具,那么要慎重考虑要不要换成 Zignis
风格的,好在 Zignis
整合比较简单,如果项目中之前没有命令行的基础设施,那么推荐尝试 Zignis
。
# 为什么要整合
- 获得命令行基础设施,一个项目总有一些操作不适合或者来不及做到后台里,通过一个命令行工具,可以更简单的和系统和数据进行交互。
- 获得脚本基础设施,总有一些脚本需要执行,脚本起什么名字,放什么位置,以及如何跟业务或者数据进行交互都是常见的需求。
- 可以使用相关的
Zignis
插件,并且通过配置影响和改变插件的行为。 - 获得一个业务相关的
REPL
环境,可以任意调用项目中封装的方法,或者跟一些封装的基础设施进行交互。
# 项目整合方式
不一定所有的环节都需要,按需使用即可。
# 1. 将 Zignis
添加为项目依赖
这里以 yarn
为例:
yarn add zignis
# 2. 在项目根目录进行初始化
zignis init [--typescript]
这里看项目是否是基于 typescript 搭建的,如果是就带上 --typescript
参数。初始化过程会在项目根目录新建一个配置文件 .zignisrc.json
,并且新增了一个 bin/zignis
目录,理论上不会和现有的项目有冲突。
# 3. 添加一些命令或脚本
zignis make command xxx
zignis make script yyy
# 4. 定义项目自己的插件
类似于渐进式开发的理念,一个插件如果只是自己的项目中使用,可以将插件作为项目代码的一部分,等优化成熟了,也很容易转成 npm 包的形式与其他项目分享。
zignis make plugin zzz
# 5. 将业务代码注入到 REPL 环境
参见 插件开发->例子2:实现 hook_repl
,可以看到是如何将方法注入到 REPL
的。如果是业务方法,只要引入,然后按照 hook_repl
的格式要求返回即可。如果要让方法生效,还需要自己去处理方法对环境的依赖,比如连接数据库等。