tcm v1.0.15
Team Component Manager
依赖
NodeJS >= 6.0.0
通过 NPM
$ npm i -g tcm通过 YARN
$ yarn global add tcm客户端
概述
当安装TCM组件时, 会在编译组件时要求填充组件预先定义好的参数, 组件的安装流程中可以获取填充的参数,根据参数装配编译组件。
创建新的组件
当创建新的组件时, 执行
$ tcm init该命令会引导用户创建一个新的组件,在这个引导流程中, 你需要完善:
- 名称
- 版本
- 作者
- 描述
- 关键字
- 安装选项
- 选项名称
- 选项类型
- 选项默认值
同时,还会生成一个 build.js 文件,完成此文件中的方法以实现组件接收参数后的安装流程,其中:
- 在方法中能通过参数获取到
shell,dist,args三个参数,分别是shelljs,编译目标位置,编译参数(安装时填写) build过程中要把所有需要安装的文件编译到dist所指向的目标位置中- 方法最后返回一个
Promise
添加参数
在组件开发过程中,你可以通过命令方便添加组件选项
$ tcm add-options此命令会引导用户添加组件安装选项,引导完成后,新的选项会写入 component.json
添加示例
组件可以添加示例,以在组件的页面上展示,通过以下命令
$ tcm add-example此命令会引导用户设置示例的所在目录及添加示例的入口文件,引导完成后, 新的选项会写入 component.json
版本管理
在组件开发过程中,可以使用以下命令方便的变更组件版本
$ tcm version <major,minor,patch>由于组件使用 语义化版本,您可使用命令变更组件版本各个部分。
查找组件
如果想在远程 registry 中搜索组件,执行
$ tcm search <keyword> [--registry <registry url>]此命令会在指定的 registry 中搜索组件,并展示结果列表。
添加依赖到组件
当在组件中添加已有的组件依赖时, 执行
$ tcm install <component> --save [--registry <registry url>]此命令会安装依赖组件,并会根据依赖组件定义的选项进行询问填充参数。 依赖关系和填充的参数将会保存在组件 component.json 的 dependencies 节点中。
命令中可以指定组件所在的远程仓库,同时也可以直接安装本已存在的组件,示例如下:
安装远程组件
$ tcm install <componentName>@<componentVersionRange> --save [--registry <registry url>]安装本地组件
$ tcm install <componentPath> --save直接通过 component.json 安装
如果要通过已定义好的依赖关系安装组件,执行
$ tcm install安装流程和添加依赖到组件的流程类似, 需要注意的是:
- 当被安装组件所依赖的组件参数在依赖关系(dependencies 节点)中已声明时, 安装器将会自动填充依赖关系中保存的参数到组件安装流程中。
- 当被安装组件所依赖的组件安装参数未被填充时,安装器将会自动填充组件选项的默认值为参数到组件安装流程中。
检查安装结果
如果要查看已安装的组件,执行
$ tcm ls此命令会罗列出所有已安装的组件,并会检查已安装组件的依赖关系是否安装。
组件删除
如果要删除已安装的组件, 执行
$ tcm uninstall <componentNames> [--save]此命令将会删除已安装的指定组件,若有 save 参数则同时将 component.json 中的依赖关系移除。
组件打包
如果要打包自己的组件以备发布,执行
$ tcm pack此命令会将遵循黑名单 .tcmignore 对当前组件目录进行完整打包到 component.tar.gz 文件。
以下文件已默认包含在黑名单中,请避免使用:
.gitGIT目录.tcmignoreTCM黑名单列表distTCM默认编译结果目录componentsTCM组件依赖安装目录component.tar.gzTCM组件打包文件example.tar.gzTCM组件示例打包文件component.jsonTCM组件元文件
打包前脚本
组件打包前会运行 component.json 中 prepack 节点中指定的脚本。
组件发布
如果要将组件发布到 registry, 执行
$ tcm publish [--registry <registry url>]此命令将会将本地组件发布到远程。
注:tcm publish 命令将会先行执行 tcm pack 命令,但是无文件产出。
缓存管理
您可以使用以下命令查看 TCM 的缓存目录
$ tcm cache也可以通过以下命令清除 TCM 所有缓存
$ tcm cache --clean组件 component.json 中可以定义 buildCache 节点,这是一个缓存白名单,在组件重复 build(多次安装)的过程中,如果白名单中的目录或者文件在 prepare 目录中已存在,则不会进行清除,build 过程可以重复使用这些缓存下来的文件。(例如第三方的库就不用重复下载和编译了)
服务端
概述
这是 TCM 的组件 registry 服务端,负责集中管理组件,可以使用开放的 API 对 registry 中的组件进行检索、下载,也可以接收组件的打包发布。未来还将支持组件的基本 WIKI 和 DEMO 页面的展示。
启动服务
若要启动服务,执行
$ tcm-server start <registry-path> [--host <host> --port <port> --db <mongodb-url>] [--debug]存储位置
其中 registry-path 是所有组件和服务数据库要存放的位置,host 和 port 则为服务监听的地址和端口。
数据库
服务端默认使用 TingoDB 作为数据库, TingoDB 是一个 本地嵌入型 NoSql数据库, 与 MongoDB API 相同。
同时,也可以通过 --db 参数传入 MongoDB 的URL地址,来启用 MongoDB。
$ tcm-server start ./registry --db mongodb://localhost:27017/tcm注:由于 TingoDB 不支持多进程操作,所以当使用 TingoDB 时服务器将会以单进程模式启动
启动模式
增加 --debug 为启动单进程模式,并会打印 Log 到终端。
生产环境下建议使用 MongoDB, 服务将会以多进程运行,启动一个守护进程和多个工作进程,工作进程数量为 CPU 的内核数量。
生产环境可以使用 supervisor forever 等来进行服务启动,以提高服务的可用性。
开发
测试安装TCM
$ cd <tcm>
$ npm ln接下来便可以直接使用 tcm。
更多帮助使用 tcm --help 查看。
开发模式
$ cd <tcm>
$ npm run dev