У меня есть метеорное приложение со следующими пакетами:
$ 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-router
, следуя этому совету: https://forums.meteor.com/t/iron-router-jquery-dependency/51374 (в частности meteor add iron:router --allow-incompatible-update
).
Я хотел бы использовать более новую 3.0.0
. У меня не складывается впечатление, что в iron-router
.
есть какая-то истинная несовместимость. Однако, если я пытаюсь добавить ее, я получаю:
$ meteor add jquery@3.0.0
-error: Conflict: Constraint jquery@1.0.0 is not satisfied by jquery
3.0.0.
Constraints on package "jquery":
* jquery@3.0.0 <- top level
* jquery@1.11.9 || 3.0.0 <- blaze 2.3.4 <- accounts-base 1.5.0 <-
accounts-password 1.5.3
* jquery@1.11.9 || 3.0.0 <- blaze 2.3.4 <- blaze-html-templates
1.1.2
* jquery@1.0.0 <- iron:dynamic-template 1.0.12 <- iron:controller
1.0.12 <- iron:router 1.1.2
* jquery@1.0.0 <- iron:location 1.0.11 <- iron:router 1.1.2
Изначально у меня была сложная время увидеть, откуда он получает 1.0.0
для железных: * зависимостей, поскольку не было явной версии в списке:
Затем я нашел это в документации для api.versionsFrom(meteorRelease)
:
Использование версий основных пакетов из релиз. Если не предоставлено, все пакеты будут по умолчанию для версий, выпущенных вместе с meteorRelease. Это избавит вас от необходимости выяснять точные версии основных пакетов, которые вы хотите использовать. Например, если последняя версия meteor - `METEOR@0.9.0 и включает в себя jquery@1.0.0, вы можете написать api.versionsFrom ('METEOR@0.9.0') в вашем пакете, а когда вы позже напишите api.use ('* 1063) * '), это будет эквивалентно api.use (' jquery@1.0.0 ').
Итак, похоже, что происходит - jquery@1.0.0 был привязан к METEOR@0.9.2
.
Итак ... кроме возможности извлечения пакетов iron-*
в мой локальный проект в качестве пользовательских пакетов для переопределения api.versionsFrom(meteorRelease)
в пользовательском форке к современному release (или, точнее, указать конкретную c jquery версию, поскольку я считаю, что она больше не является базовым пакетом) ... есть ли способ принудительно обновить ее до jquery@3.0.0
, несмотря на то, что он считает конфликт?
К сожалению, --allow-incompatible-update
в данном случае не работает.