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
? 请输入您的邮箱: [email protected]
? 请输入您的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
配置文件可能存在于项目或者组件中,在不同的应用场景,并非所有的配置项都有用,请酌情进行配置!
name
: 名称,请和Gitlab项目名称保持一致description
: 描述,请用简洁的语言描述项目或者组件version
: 版本号,仅适用于组件dependencies
: 依赖的组件dir
: 组件安装的目录,仅适用于项目author
: 组件作者信息main
: 入口文件,仅适用于组件exclude
: 安装时排除的文件和目录,仅适用于组件,配置规则可以参考node-glob
fecom
的默认配置项:
name
: 执行fecom
命令的目录dir
:components
owner
:fecom-fe
domain
:https://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 compA
fecom install group/compA
fecom install group/[email protected]
fecom install npm:group/[email protected](目前未实现,后续根据需要实现扩展npm包)