fecom
A magic component management tool
简介
fecom是依托于Gitlab的组件管理工具,只需要满足下面条件,就可以通过fecom管理组件:
- 对
fecom进行正确配置 - 组件中包含
component.json配置文件 - 组件中有与版本相对应的
tag
组件示例可以参考:https://gitlab.com/u/icefox0801/projects
安装
npm install -g fecom配置
首次执行fecom命令,会提示输入用户名、邮箱和Gitlab Token
icefox@icefoxmac:~ $ fecom
11:55:51 INFO 用户配置文件未找到,初始化"~/.fecomrc"
? 请输入您的用户名: icefox0801
? 请输入您的邮箱: icefox0801@hotmail.com
? 请输入您的Gitlab token: ********************
11:56:06 INFO 完成初始化用户配置文件输入以上信息后,用户信息会被保存到~/.fecomrc文件中,以后每次执行fecom会读取~/.fecomrc中的用户配置
除此之外,还需要配置Gitlab的API地址和默认组件所属的用户/组。例如,Gitlab的地址为https://gitlab.exaplem.com,默认组件的仓库都放下fe-group下,那么还需执行:
icefox@icefoxmac:~ $ fecom p -d "domain=https://gitlab.example.com&owner=fe-group"用法
Usage: fecom [options]
Commands:
init [options] 初始化组件
install|i [options] [component...] 安装组件
uninstall|un [options] <component...> 卸载组件
list|ls [options] [component...] 列出组件版本
info <component> 显示组件的详细信息
link [component] 链接组件
search|s [options] <pattern> 搜索组件
profile|p [options] [query] 管理用户配置
tree|t [options] [component...] 打印组件依赖树
version|v [options] [releaseType] 组件版本更新
update|u [component...] 更新组件
A magic component management tool
Options:
-h, --help output usage information
component.json
component.json配置文件可能存在于项目或者组件中,在不同的应用场景,并非所有的配置项都有用,请酌情进行配置!
-
name: 名称,请和Gitlab项目名称保持一致 -
description: 描述,请用简洁的语言描述项目或者组件 -
version: 版本号,仅适用于组件 -
dependencies: 依赖的组件 -
dir: 组件安装的目录,仅适用于项目 -
author: 组件作者信息 -
main: 入口文件,仅适用于组件 -
exclude: 安装时排除的文件和目录,仅适用于组件,配置规则可以参考node-glob
fecom的默认配置项:
-
name: 执行fecom命令的目录 -
dir:components -
owner:fecom-fe -
domain:http://gitlab.58corp.com
综上所述:
- 项目应该配置的项有
name、description、dir、dependencies、author - 组件应该配置的项有
name、description、version、main、author、dependencies、exclude
常用命令介绍
-
fecom init: 初始化组件的目录结构,如果指定-S参数则跳过所有问题直接通过默认配置生成组件目录结构 -
fecom install: 安装component.json中dependencies项所指定的所有组件 -
fecom install compA: 安装compA组件以及它的依赖,并保存到component.json中 -
fecom link: 将当前目前的组件注册为全局的链接,以便进行本地开发 -
fecom link compA: 软链接components/compA到全局注册的compA组件目录 -
fecom uninstall compA: 卸载compA组件以及它的依赖 -
fecom update compA: 更新compA到最新版本,只更新compA本身 -
fecom info compA: 显示compA的详细信息以及版本更新历史 -
fecom list: 列出本地安装的所有组件,如果指定-U参数则检查是否有更新 -
fecom list compA: 列出本地安装的compA组件,如果指定-U参数则检查是否有更新 -
fecom search compA: 按照compA搜索Gitlab中的组件,如果指定-O参数则按用户/组搜索 -
fecom profile: 列出用户配置 -
fecom profile "username=icefox0801": 以query形式设置用户配置项 -
fecom profile -D "domain=https://gitlab.example.com": 以query形式设置fecom默认配置项 -
fecom tree: 以依赖树的形式列出本地安装的所有组件 -
fecom tree compA: 以依赖树的形式列出本地安装的compA组件,如果指定-R参数,则列出远程compA组件的依赖树 -
fecom version: 提示选择并更新组件的版本号,会更新component.json中的version和自动添加tag,注意还需执行git push --follow-tags来推送到远程仓库 -
fecom version patch: 以patch类型更新组件版本号,类型也可以为major或者minor
组件安装格式
组件名称格式 [source:][owner/]name[@version][?args],以group/compA为例
fecom install compAfecom install group/compAfecom install group/compA@1.8.3fecom install npm:group/compA@1.8.3(目前未实现,后续根据需要实现扩展npm包)