【问题标题】:How do I edit a Meteor package from Atmosphere that's not on GitHub?如何从 Atmosphere 编辑不在 GitHub 上的 Meteor 包?
【发布时间】:2015-10-07 19:11:54
【问题描述】:

我正在开发一些 Twitter 功能,我想使用“仅应用程序身份验证”,它只需要我的 Twitter 应用程序凭据即可在我的应用程序中执行GETS(例如,基于用户输入标签的随机推文搜索等. - 没有实际的用户发帖。)

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 上。我如何确定它在哪里和/或我是否可以在本地访问它并对其进行修改和/或在网上找到一些它所在的存储库? Atmosphere 没有提供太多帮助,没有提供此包实际下载位置的链接?

mrt:twit 的链接:https://atmospherejs.com/mrt/twit

ttezel/twit 的链接:https://github.com/ttezel/twit

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

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

经过调查,并不是mrt:twit 没有正确“实现”ttezel/twit's 接口,而是mrt:twit 使用/需要旧版本的ttezel/twit,版本1.1.9 而不是当前的2.1 .0. ttezel/twit 的旧版本不支持“仅应用程序”授权 - 我可以在代码中看到它。因此,我的上述原始问题。 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 的配置文件。我发现的唯一内容是位于twit 文件夹旁边的第二个路径上的文件.node_version,其中只有v0.10.20,这是我假设使用的Node 版本。这不会“强制”当时发布的任何软件包版本吗?如果是这样,那么这可能就是将 ttezel/twit 设置为使用 1.1.9。

我原来的帖子问题仍然存在,我在哪里可以找到服务器上的mrt:twit,这样我就可以分叉/编辑它,而不必在本地编辑代码?

【问题讨论】:

  • 您是否尝试在 $HOME/.meteor/packages 中查找?
  • 我在各种帖子上看到了该路径,但所有导致的是文本文件“包”,其中列出了我使用的包。那里没有文件夹或代码。

标签: node.js twitter meteor oauth npm


【解决方案1】:

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

我在.meteor/local/build/programs/server/packages中有很多包文件

恐怕它已经全部编译好了,但你可以获取一些你需要的代码并制作你自己的包。

【讨论】:

  • 感谢您的提示,我在本地找到了文件并更新了我的问题
  • 请记住,您不能(不应该)在 .meter 文件夹中进行任何更改。你为什么不自己做包?我猜你的问题不是 Meteor 而是 Npm。 Npm.require 只是抓取您已安装的模块。我的建议是制作你自己的包,用你需要的版本包装 twit 模块。互联网上应该有一些关于如何制作自己的依赖于 npm 模块的包的文章。 http://docs.meteor.com/#/full/Npm-depends
【解决方案2】:

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

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

该页面指向实际的 GitHub 位置:

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

所以上面的链接是从当前mrt:twit 包下载到你的 Meteor 应用程序的地方,如果你将它添加到你的应用程序(在撰写本文时)。一旦我发现我可以很容易地在package.js 文件中看到它声明Npm.depends({twit: "1.1.9"})。附带说明:如果当前版本的 Atmosphere 将您指向旧/旧包的 GitHub 位置,它将如何处理新包。

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

在此之前,我按照以下链接制作了一个本地包,并且一切正常 - 包括仅限应用程序的身份验证。感谢 cmets - 他们很有帮助。我在 Meteor 和打包系统的工作原理方面还是个新手。

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

如果您想访问我在以下链接中制作的更新包,但它不是已发布的流星包 - 所以您必须下载并在本地使用它:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 2017-04-13
    • 1970-01-01
    • 2021-04-03
    • 2018-02-22
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多