流星大气/核心程序包相关性分辨率覆盖(jQuery,Iron路由器,大火)

问题描述 投票:0回答:1

我有一个带有以下软件包的流星应用程序:

$ meteor list

accounts-password      1.5.3  Password support for accounts
accounts-ui            1.3.1  Simple templates to add login widget...     
blaze-html-templates   1.1.2  Compile HTML templates into reactive...     
ecmascript             0.14.2  Compiler plugin that supports ES201...     
es5-shim               4.8.0  Shims and polyfills to improve ECMAS...     
fourseven:scss         4.12.0  Style with attitude. Sass and SCSS ...     
iron:router            1.1.2  Routing specifically designed for Me...     
jquery                 1.11.11* Manipulate the DOM using CSS selec...     
meteor-base            1.4.0  Packages that every Meteor app needs        
mobile-experience      1.0.5  Packages for a great mobile user exp...     
mongo                  1.8.1  Adaptor for using MongoDB and Minimo...     
reactive-var           1.0.11  Reactive variable
shell-server           0.4.0  Server-side component of the `meteor...     
standard-minifier-css  1.6.0  Standard css minifier used with Mete...     
standard-minifier-js   2.6.0  Standard javascript minifiers used w...     
tracker                1.2.0  Dependency tracker to allow reactive...     
typescript             3.7.5  Compiler plugin that compiles TypeSc...     


* New versions of these packages are available! Run 'meteor update'       
  to try to update those packages to their latest versions. If your       
  packages cannot be updated further, try typing
  `meteor add <package>@<newVersion>` to see more information.

jquery版本提供大气包装3.0.0。在安装iron-router之前我已经拥有了。通过遵循以下建议,我可以成功安装iron-routerhttps://forums.meteor.com/t/iron-router-jquery-dependency/51374(特别是meteor add iron:router --allow-incompatible-update)。

我想使用较新的3.0.0。我不觉得iron-router内有任何真正的不兼容性。

但是,如果我尝试添加它,则会得到:

$ meteor add [email protected]

-error: Conflict: Constraint [email protected] is not satisfied by jquery       
3.0.0.
Constraints on package "jquery":
* [email protected] <- top level
* [email protected] || 3.0.0 <- blaze 2.3.4 <- accounts-base 1.5.0 <-
accounts-password 1.5.3
* [email protected] || 3.0.0 <- blaze 2.3.4 <- blaze-html-templates
1.1.2
* [email protected] <- iron:dynamic-template 1.0.12 <- iron:controller
1.0.12 <- iron:router 1.1.2
* [email protected] <- iron:location 1.0.11 <- iron:router 1.1.2

最初,我很难看到铁:*依赖项从哪里获得1.0.0,因为没有列出明确的版本:

然后我在the documentation中找到了api.versionsFrom(meteorRelease)

使用发行版中核心软件包的版本。除非提供,否则所有软件包将默认为与meteorRelease一起发布的版本。这将使您不必弄清楚要使用的核心软件包的确切版本。例如,如果流星的最新版本是“ [email protected]”,并且它包含[email protected],则可以在程序包中编写api.versionsFrom('[email protected]'),稍后再编写api .use('jquery'),将等同于api.use('[email protected]')。

所以这似乎正在发生[email protected]tied to [email protected]


所以...除了将[email protected]包作为自定义包检出到我的本地项目中的选项之外,还可以覆盖自定义派生到现代版本中的iron-*(或者指定特定的jquery版本,因为我相信它不再是核心软件包)...尽管它认为有冲突,仍然可以通过任何方式强制将其更新为api.versionsFrom(meteorRelease)吗?

不幸的是,[email protected]在这种情况下似乎不起作用。

meteor dependencies package version conflict
1个回答
0
投票

这有点自以为是,但是如果您想让一个路由器不依赖于过时的软件包,则应该使用--allow-incompatible-update,它甚至允许您省略jQuery或使用npm软件包安装jQuery。

自Meteor 1.8.3起,Blaze与jQuery之间也没有硬性依赖关系,允许从npm注册表安装最新的jQuery,从安全性的角度来看这很重要。

签出:ostrio:flow-router-extrahttps://github.com/VeliovGroup/flow-router

© www.soinside.com 2019 - 2024. All rights reserved.