gpt4 book ai didi

meteor 版求解器 : why does "meteor update" downgrade packages?

转载 作者:行者123 更新时间:2023-12-01 06:26:39 24 4
gpt4 key购买 nike

我在一个包里有这个:

  api.use([
'kestanous:herald@1.1.3',
'kestanous:herald-email',
]);

正如预期的那样,Meteor 使用 Herald 包的 1.1.3 版。

如果我删除 @1.1.3版本,包的 versions.json不会改变。

但是现在如果我跑 meteor update kestanous:herald ,这是我得到的:
$ meteor update kestanous:herald

Changes to your project's package version selections from updating package versions:

kestanous:herald downgraded from 1.1.3 to 1.0.1

升级包实际上会降级它对我来说没有意义。特别是因为 kestanous:herald在应用程序中没有其他地方使用。更奇怪的是,包裹的 versions.json仍然没有变化。尽管有消息,文件。

所以似乎我不明白包版本控制是如何工作的,或者有些东西不能正常工作?

最佳答案

我不确定我是否 100% 正确,因为使用的系统非常奇怪,并且直到最近才更改了很多次。
Meteor 的新软件包系统适用于约束求解器。每个包都声明了其设计的 Meteor 版本,例如,如果您为 Meteor 0.9.2 设计它并在 Meteor 0.1.0 上运行它,那么 blaze 会略有不同。包裹。
因此,如果您的其他软件包之一所依赖的软件包使用了这个旧版本的 blaze,那么其他软件包将被降级,以便它可以匹配此约束,这样只要约束就可以使用所有包含的软件包的最新版本匹配。
所以如果 herald 就会发生这种情况对某些较旧的 Meteor 包或版本有限制,或者对某些较旧的包有依赖性。
虽然不必显式定义包,但可以从 api.versionsFrom("XXX") 隐式定义。也。
然后 Meteor 相应地升级或降级软件包。
此外,根据 semver 允许的包允许有“余地”。规范,小包版本更新是可以的,但主要的会强制降级,因为新版本被认为不兼容。有一点discussion这也是。
这是 kestanous:herald 的包的 package.js 文件:

api.versionsFrom('METEOR@0.9.2');
api.use(['check', 'underscore', 'tracker','accounts-base', 'blaze', 'artwells:queue@0.0.3']);
这意味着您的meteor 项目中的所有包都将尝试降级,以便所有这些包都可以与这些其他依赖项兼容。
如果您升级了 versionsFrom ,那么meteor 会更容易接受其他软件包中的较新版本。
https://github.com/Meteor-Reaction/Herald/blob/master/package.js#L9

关于 meteor 版求解器 : why does "meteor update" downgrade packages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27810940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com