bpm 是一个针对 brix 组件开发的包管理器。
bpm = opm + opmext-brix
bpm 是基于 opm 开发的,通过给 opm 安装 opmext-brix 扩展可实现 bpm 工具的所有功能。为了方便 brix 开发者进行了整合。
- 发布 brix 组件到中央库
- 安装并使用别人开发的组件
- 方便的创建组件,维护组件版本
- 安装nodejs;
- 用 npm 安装 bpm:
sudo npm install brix-bpm -g
; - 安装后,执行
bpm
命令若有输出则安装成功。
发布组件前需要在注册服务器上进行注册,命令是:
bpm adduser
根据提示完成即可。阿里用户请使用与域账号相同的用户名进行注册,密码则可以不同。后续我们将支持域账户登录。
很抱歉,由于暂未解决的数据库问题,注册用户后还需要联系 [email protected] 开通一下权限。
在开始使用之前,请了解被bpm维护的库有两种类型,工程和组件,部分命令在执行的时候有目录的区别,请注意鉴别。
一个典型的目录结构是这样的:
ux.subway.trunk / 此为工程目录,相关命令有 init、create ├── package.json ├── components │ └── sidebar / 此为组件目录,相关命令有 publish、preview、export │ ├── package.json │ ├── index.js │ └── index.css └── imports └── ux.brix.core └── datepicker └── 1.0.0 ├── package.json ├── template.html └── data.js
所有 brix 组件都应该隶属于一个工程,同样的,这个工程也是一个被 bpm 维护的包。
在创建好的 工程目录中 执行 bpm init
命令初始化一个工程,命令会用收集到的信息生成一个 package.json
。
其中name
字段命名请使用 部门名.项目名.项目分支名
的形式。此字段将作为此工程下的所有组件的命名空间前缀。
{
"name": "etao.ux.x1", // 工程名,同时为此工程的所有组件的命名空间
"version": "0.0.3", // 版本,暂时没什么用
}
在 工程目录中 执行 bpm create component_name
会在 components/component_name
目录中创建一个组件。
会生成一个 package.json
文件,以下两项必选:
name
,格式如namespace_subname
,工具会根据所在工程目录自动生成一个默认值,若有修改请填写包括命名空间的完整名字,组件subname请使用“-”分隔,如date-selector
,以方便初始化工具自动生成类名,如DateSelector
。version
,采用 semver 规范(中文版),每次发布组件的新版本前需要手动修改此版本号。dependencies
配置此组件的依赖。需要指定依赖组件的版本,始终使用最新版则用latest
表示。
package.json
示例如下:
{
"name": "etao.ux.ehome_hotsale",
"version": "0.0.1",
"dependencies": {
"etao.ux.x1_banner": "0.0.1",
"etao.ux.ehome_footer": "latest"
}
}
参考此例。
在 组件目录中 执行:
bpm publish
将组件发布到中央库,并同时存放在工程目录下 exports/component_name/version/
目录中。
发布完成之后,可以到 一淘 UX 规范中心 查看 (由于定时任务暂时还没跑起来,需要知会逸才手工同步)。
在 工程目录中 执行:
bpm install namespace_component
组件 及其依赖 会被安装到 imports/namespace/component_name/version/
目录中。
安装后的组件中的 kissy.add
和 bx-name
属性会被替换成新的路径。
可安装组件可到中心库查询
bpm-test 项目中有一些用例,参考文档学习看看使用效果吧!
bpm 还是一个新生项目,将会持续的进行改进,如果你发现什么问题,不如先尝试 npm update brix-bpm -g
看看勤奋的开发者有没有已经修复这个问题。如果还是不行的话,欢迎到Issues中进行提交,或直接联系开发者,谢谢。