tcm

    1.0.15 • Public • Published

    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.jsondependencies 节点中。

    命令中可以指定组件所在的远程仓库,同时也可以直接安装本已存在的组件,示例如下:

    安装远程组件

    $ 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.jsonprepack 节点中指定的脚本。

    组件发布

    如果要将组件发布到 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 是所有组件和服务数据库要存放的位置,hostport 则为服务监听的地址和端口。

    数据库

    服务端默认使用 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

    Keywords

    Install

    npm i tcm

    DownloadsWeekly Downloads

    3

    Version

    1.0.15

    License

    ISC

    Last publish

    Collaborators

    • niksun