Atom飞行手册翻译: 4.5 ~ 4.8
来源:互联网 发布:美工岗位描述 编辑:程序博客网 时间:2024/06/05 17:46
开发Node模块
Atom中的一些包是Node模块,而不是Atom的包。如果你想要修改这些Node模块,例如atom-keymap
,你需要把它们链接到不同于普通Atom包的开发环境中。
把Node模块链接到你的Aton开发环境
下面是运行node模块的本地版本的步骤,而不是Atom中的apm。我们使用atom-keymap
作为一个例子:
$ git clone https://github.com/atom/atom-keymap.git$ cd atom-keymap$ npm install$ npm link$ apm rebuild # This is the special step, it makes the npm work with Atom's version of Node$ cd WHERE-YOU-CLONED-ATOM$ npm link atom-keymap$ atom # Should work!
然后,当你修改了node模块的代码时,你必须运行npm install
和apm rebuild
。
通过服务和其它包交互
Atom包可以通过叫做服务的带有版本控制的APi,和其它包进行交互。在你的package.json
文件中指定一个或者多个版本号来提供服务,每个版本号都要带有一个包的主模块中的方法。
{ "providedServices": { "my-service": { "description": "Does a useful thing", "versions": { "1.2.3": "provideMyServiceV1", "2.3.4": "provideMyServiceV2", } } }}
在你的包的主模块中实现上面的方法。这些方法会在一个包被激活的任何时候调用,它们会使用它们的通信服务。它们应该返回实现了服务API的一个值。
module.exports = activate: -> # ... provideMyServiceV1: -> adaptToLegacyAPI(myService) provideMyServiceV2: -> myService
与之相似,指定一个或多个版本范围来使用一个服务,每个都带有一个包的主模块中的方法。
{ "consumedServices": { "another-service": { "versions": { "^1.2.3": "consumeAnotherServiceV1", ">=2.3.4 <2.5": "consumeAnotherServiceV2", } } }}
这些方法会在一个包被激活的任何时候调用,它们会提供它们的通信服务。它们会接受到一个通信对象作为一个参数。你通常需要在包提供的服务失效的时间中,进行同种类型的清除工作。从你使用服务的方法中返回一个Disposable
来完成它:
{Disposable} = require 'atom'module.exports = activate: -> # ... consumeAnotherServiceV1: (service) -> useService(adaptServiceFromLegacyAPI(service)) new Disposable -> stopUsingService(service) consumeAnotherServiceV2: (service) -> useService(service) new Disposable -> stopUsingService(service)
维护你的包
虽然到目前为止,你在开发一个包的时候,发布是最通常的行为,但是你还需要做一些其它的事情。
撤销发布一个版本
如果你错误地发布了你的包的一个版本,或者你发现了一个显眼的bug或安全漏洞,你可能想要撤销这个版本的发布。例如,如果你的包叫做package-name
而且错误的版本是v1.2.3,你可以执行如下命令:
apm unpublish package-name@1.2.3
这会从 https://atom.io/ 包注册处移除特定的版本。任何下载了这个版本的人会依然保留它,但是它不再对其它人提供安装。
添加协作人
一些包对于一个人来说太大了。有时优先级会更改,或者其它人想要提供帮助。你可以在你的包的GitHub仓库中,通过添加它们到协作者,来让其它人帮忙或者创建共同拥有者。注意:任何具有你的仓库推送(push)权限的人,都可以发布属于这个仓库的包的新版本。
你也可以拥有属于Github组织的包。任何人如果属于一个组织,并且这个组织具有一个包所在仓库的的推送权限,它就可以发布这个包的新版本。
转移控制权
这是一个永久的改变,而且没有办法撤销!
如果你想要把你的包的支持移交给其它人,你应该向新的拥有者转移这个包的仓库。
撤销发布你的包
在删除你的仓库之前撤销发布你的包非常重要。如果你首先删除了仓库,你就会失去对包的访问途径,并且在没有协助之下不能将其恢复。
如果你不再对你的包提供支持,并且找不到任何人来接盘,你可以从 https://atom.io/ 中撤销发布你的包。例如,如果你的包叫package-name
,你可以执行如下命令:
apm unpublish package-name
这个命令会从 https://atom.io/ 包注册处移除你的包。任何下载了你的包的副本的人依然会保留,以及能够使用它,但是它不再对其它人提供安装。
重命名你的包
如果由于任何原因你需要重命名你的包,你可以使用一条简单的命令apm publish --rename
,来修改你的包的package.json
文件中的name
字段,推送(push)一个新的提交(commit)和打上标签(tag),以及发布重命名之后的包。向之前名字发送的请求会重定向到新的名字。
一旦一个包的名称被使用,它就不能其它包复用,即使原来的包撤销了发布。
apm publish --rename new-package-name
小结
现在你应该对Atom核心APi和系统有了更深入的理解。
- Atom飞行手册翻译: 4.5 ~ 4.8
- Atom飞行手册翻译: 1.3 Atom基础
- Atom飞行手册翻译: 1.4 小结
- Atom飞行手册翻译: 2.3 文本选择
- Atom飞行手册翻译: 2.7 ~ 2.10
- Atom飞行手册翻译: 2.6 代码段
- Atom飞行手册翻译: 2.14 小结
- Atom飞行手册翻译: 3.1 ~ 3.2
- Atom飞行手册翻译: 3.5 创建主题
- Atom飞行手册翻译: 3.6 图标
- Atom飞行手册翻译: 3.7 调试
- Atom飞行手册翻译: 3.8 编写spec
- Atom飞行手册翻译: 4.1 配置API
- Atom飞行手册翻译: 2.1 Atom中的包
- Atom飞行手册翻译: 2.2 在Atom中移动
- Atom飞行手册翻译: 2.11 Atom中的版本控制
- Atom飞行手册翻译: 2.12 在Atom中写作
- Atom飞行手册翻译: 4.4 Atom中的序列化
- 我的ROS入门(三):ubuntu-15.04-desktop-amd64配置ROS
- 浅谈多进程多线程的选择
- HDU 1978
- Subsets
- UVA 340 Master-Mind Hints
- Atom飞行手册翻译: 4.5 ~ 4.8
- EasyUI combotree 赋值
- 递归显示部门
- 简单搜素题集
- Android中使用Build获取当前系统SDK版本
- SVPullToRefresh深入理解
- BATCH_BACKUP
- Allegro中设置开窗的方法 Allegro中设置开窗的方法
- objective-c算法详解(一、链表)