2016-08-25 29 views
0

语境如何使用流星包的叉子当原始包装是一个依赖

我使用的aldeed:自动窗体包,发现& PR申请了它(https://github.com/aldeed/meteor-autoform)一对夫妇的错误。

Aldeed是许多流行软件包的唯一维护者,最终成为合并PR &后续问题的瓶颈。 我的解决方案是叉他的项目&发表我的叉气氛。

天真,我只是删除他的包meteor remove aldeed:autoform并尝试添加矿:meteor add metakungfu:autoform

当我加载我的应用程序,我得到以下错误: enter image description here

Package['aldeed:autoform']返回预期的目标,即使我取出包装。

为了完整起见,我使用了一堆依赖于aldeed的其他包:autoform和我的猜测是,这就是为什么aldeed:autoform包仍然存在的原因。

问题:

  • 什么是使用包装的叉的正确方法,当包是其他包的依赖?

  • 这是解决我的问题的正确方法吗?

回答

0

我已经结束了使用mgp管理包。 为了解决我的问题,我不得不做两件事情:

首先,在你的项目的根,看起来像这样添加一个git-packages.json

➜ cat git-packages.json 
{ 
    "aldeed:autoform": { 
    "git": "[email protected]:gregory/meteor-autoform.git", 
    "branch": "dev" 
    } 
} 

这将在本地工作,但如果你部署到heroku,buildpack将需要安装mgp 01​​安装依赖关系。

我只是opened a PR to fix this

0

分叉所有的依赖关系,并使它们指向您的分叉。

+0

,可能会工作,但会很伤心做:) - 这意味着你必须保持所有这些叉随时有更新... – metakungfu

0

而不是发布自己的aldeed:autoform到Atmosphere版本,而应该将其作为本地包使用,并保持其名称不变。在尝试从Atmosphere获取流星之前,Meteor会首先查找本地包。

这样,依赖它的所有其他包都将使用您的本地版本。

为了做到这一点,请参阅:Why does Meteor's aldeed/meteor-tabular package get stuck processing and never render a result?

参考:Meteor Guide > Build > Writing Atmosphere Packages > Overriding packages with a local version

+0

将一堆文件复制/粘贴到项目中并丢失版本是不是很难过?有没有办法我可以使用包管理解决方案,我可以autoform指向我的叉代替?这将是理想的 - 至少,陨石有一个选项指向一个分叉:https://github.com/oortcloud/meteorite#usage – metakungfu

+0

我相信你有很多选择,从git子模块到符号链接npm ...唯一的要求是在'/ packages'中最终获得自己的版本,其名称与原始包相同。 – ghybs