如何从不在 GitHub 上的 Atmosphere 编辑 Meteor 包?

How do I edit a Meteor package from Atmosphere that's not on GitHub?

我有一些正在开发的 Twitter 功能,我想使用 "Application-Only Authentication",它只需要我的 Twitter 应用程序凭据就可以在我的应用程序中执行 GETS(例如,基于用户输入的标签的随机推文搜索,等 - 没有实际用户 posting.)

Twitter 支持此功能,但 Atmosphere 和 NPM 上的大多数 Twitter 软件包不支持。他们强制您同时传递应用程序凭据和 OAuth 令牌,如果您不这样做,您的请求将无效。最流行的 Meteor Twitter API 包 mrt:twit 实际上包装了 NPM 包 ttezel/twit,它实际上正确地实现了仅应用程序身份验证,但是 Meteor mrt:twit 的包装器包迫使你使用需要我不想或不需要使用的用户 OAuth 令牌的完全身份验证。所以我想编辑 mrt:twit 以正确遵循 ttezel/twit's 界面。

但是,mrt:twit 包不在 GitHub 上。如果我可以在本地访问它并修改它,我如何找出它的位置 and/or and/or 找到它所在位置的在线存储库? Atmosphere 没有提供太多帮助,因为没有提供此包实际下载位置的链接?

Link 对于 mrt:twit: https://atmospherejs.com/mrt/twit

Link 对于 ttezel/twit: https://github.com/ttezel/twit

编辑:我正在使用 Meteor 1.1.0.2。我能够找到 mrt:twit 在本地的位置。它位于:

.../.meteor/local/build/programs/server/packages/

查了下,不是mrt:twit"implement"ttezel/twit's接口不对,而是mrt:twit是using/requiring旧版本的ttezel/twit,版本 1.1.9 而不是当前的 2.1.0。 ttezel/twit 的旧版本不支持 "application-only" 授权 - 我可以在代码中看到它。因此,我的上述原始问题。 ttezel/twit 下载到以下文件夹:

.../.meteor/local/build/programs/server/npm/mrt_twit/node_modules/twit

在上面的文件夹中,我看到 ttezel/twit 的完整 .git 包,但它是 1.1.9 版。所以我假设我可以用最新的 2.1.0 版本的 ttezel/twit 替换这个文件夹,但我认为你不应该弄乱 node_modules 文件夹中的任何东西,对吗?不应该有一个配置文件可以编辑吗?

我怎么也找不到 mrt:twit 在哪里声明使用 1.1.9 版。在所有代码中它只调用 Npm.require('twit')。我找不到将版本设置为 1.1.9 的配置文件。我唯一找到的是上面第二条路径中名为 .node_versiontwit 文件夹旁边的文件,其中只有 v0.10.20 这是我使用的 Node 版本认为。那不会 "force" 当时发布的任何软件包版本,对吗?如果是这样,那么这可能就是将 ttezel/twit 设置为使用 1.1.9.

的原因

我最初的 post 问题仍然存在,我在哪里可以找到服务器上的 mrt:twit 以便我可以分叉 it/edit 它而不必在本地编辑代码?

您应该检查 .meteor/local/* 个文件夹。

我在.meteor/local/build/programs/server/packages

中有很多包文件

恐怕都编译好了,但你可以抓取一些你需要的代码,然后制作你自己的包。

我给 Atmosphere 的创建者 (percolatestudio.com) 发了电子邮件,Tom 非常乐于助人,他向我指出了 mrt:twit 在 GitHub 上的位置。还是旧的1.0氛围:

https://old-atmosphere.meteor.com/package/twit

并且该页面指向实际 GitHub 位置,即:

https://github.com/subhog/meteor-twit

所以上面的 link 是当前 mrt:twit 包下载到您的 Meteor 应用程序的地方,如果您将它添加到您的应用程序(截至撰写本文时)。一旦我发现我可以很容易地在 package.js 文件中看到它声明 Npm.depends({twit: "1.1.9"})。附注:如果当前版本的 Atmosphere 将您指向 older/legacy 包的 GitHub 位置,它会如何处理新包,那就太好了。

所以我能够 fork 这个并更新包以使用 ttezel/twit 的 2.1.0 版。我提出了 mrt:twit 的拉取请求,希望作者能更新它 - 因为这是 Twitter API Meteor 包中排名第一的包,下载量为 1,200。更新它似乎比发布我自己的版本更好。

在那之前,我按照下面的 link 创建了一个本地包并且一切正常 - 包括仅应用程序身份验证。感谢您的评论 - 他们很有帮助。我对 Meteor 以及打包系统的工作原理还很陌生。

http://www.webtempest.com/meteor-js-packages-tutorial

如果你想访问我在下面制作的更新包 link 但它不是已发布的 meteor 包 - 所以你必须下载它并在本地使用它:

https://github.com/evolross/meteor-twit