Skip to content
leeight edited this page Jan 19, 2015 · 5 revisions

本文介绍如何发布一个自己的package到http://edp-registry.baidu.com,发布之后就可以通过edp import来导入了。

项目的配置

我们提供了一个Web Hook可以完成自动发布版本的操作,只需要在项目中配置一下Web Hooks即可,参考这个截图:

http://ecma.bdimg.com/adtest/Untitled-ed20bf90.png

注意:Content Type需要选择application/json,不要选错了。

发布版本

版本号

关于package的版本,应该遵循283里面讨论的约定:

版本号符合semver,其的形式为{major}.{minor}.{patch}[-{pre-release-type}.{pre-release}]

其中major、minor、patch和{pre-release}必须(MUST)为十进制数字,且随版本发布递增。

{pre-release-type}必须(MUST)选择以下关键词之一:

alpha表示内部测试版本,不建议任何非参与开发人员所在团队使用,在alpha版本期间会不断增加新的功能并修复已有BUG

beta表示公开测试版本,不建议稳定项目使用,在beta版本期间会酌情增加新功能,修复已知BUG

rc表示发布候选版本,推荐各项目使用,在rc期间不得(MUST NOT)增加任何新功能,仅修复BUG。如果rc版本未发现任何BUG,则此版本直接转为正式发布版

如果要发布正式版1.0.0,一般来说,之前应该会发布1.0.0-alpha.1, 1.0.0-beta.1, 1.0.0-rc.1这些版本来进行测试,如果测试通过了,最后再发布1.0.0。

注意版本号是1.0.0,不是v1.0.0

打TAG

发布版本对应的就是创建TAG这个操作,因为上面我们已经配置好了Web Hook,当它收到Create Tag Event之后,会自动把TAG上面的代码同步到本地,然后自动调用npm publish发布到 http://edp-registry.baidu.com,如果一切正常的话,其实可以在这里看到发布的进度 http://cp01-lijiu05-40.cp01.baidu.com:8080/job/prj_publish-package/

例如我要发布1.0.0版本了,一般来说是这样子操作的:

$ git checkout 1.0/release
$ git merge 1.0/develop
$ # vim 修改一下package.json,更新版本号
$ git commit -a -m 'bump to 1.0.0'
$ git tag -a 1.0.0 -m 'bump to 1.0.0'
$ git push origin 1.0/release 1.0.0   # 创建1.0.0这个tag

dist-tag

当Web Hook调用npm publish发布版本成功之后,会自动更新一个叫做dist-tag的字段,默认是latest

image

当我们执行edp import my-test的时候,会检查本地的版本是否跟latest这个dist-tag关联的版本是否一致。

如果我们想要安装beta或者rc这个dist-tag关联的版本,需要执行edp import my-test@beta或者edp import my-test@rc

当我们创建的TAG发布版本的时候,如果TAG是1.0.0-beta.1,那么Web Hook会更新beta这个dist-tag,而不是latest,所以如果你发现明明自己已经发布了版本,但是edp import的时候检查不到,这个时候可能就需要去看看更新的dist-tag是否正确了。

关于文档

当发布版本的时候,如果代码中存在jsduck/config.json这个文件,会自动调用jsduck --config=jsduck/config.json,把生成好的doc/api文档发布到 http://ecomfe.github.io/api 上面去(这个页面还比较难看,希望有志之士帮忙美化)。

关于jsduck应该如何使用,可以参考 https://github.com/ecomfe/er 或者 https://github.com/ecomfe/esui 中代码的注释和相关的配置。

Hello World

Clone this wiki locally