Переопределение разрешения зависимостей пакета Meteor Atmosphere / Core (jquery, iron-router, blaze) - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть метеорное приложение со следующими пакетами:

$ 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 в данном случае не работает.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Используйте @ = для установки указанной версии c pkg. Вам придется удалить npm jquery pkg, если вы понизили рейтинг.

meteor add jquery@=1.11.11
meteor npm remove jquery
meteor add iron:router
0 голосов
/ 23 февраля 2020

Это немного опрометчиво, но если вы хотите иметь маршрутизатор без зависимостей от устаревших пакетов, вам следует go с ostrio:flow-router-extra, что позволяет вам даже пропустить jQuery или установить jQuery с помощью пакета npm .

Начиная с Meteor 1.8.3, также нет жесткой зависимости между Blaze и jQuery, что позволяет устанавливать самую последнюю версию jQuery из npm реестра, что важно с точки зрения безопасности.

Выезд: https://github.com/VeliovGroup/flow-router https://github.com/meteor/meteor/blob/devel/History.md

...