tcm
v1.0.15
Published
Team component manager
Downloads
13
Readme
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
文件。
以下文件已默认包含在黑名单中,请避免使用:
.git
GIT目录.tcmignore
TCM黑名单列表dist
TCM默认编译结果目录components
TCM组件依赖安装目录component.tar.gz
TCM组件打包文件example.tar.gz
TCM组件示例打包文件component.json
TCM组件元文件
打包前脚本
组件打包前会运行 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