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中进行提交,或直接联系开发者,谢谢。