В рабочей области пряжи, как я могу форсировать разрешение для зависимости дочернего проекта? - PullRequest
0 голосов
/ 10 января 2019

Я использую библиотеку, которая поддерживает другую библиотеку с широким диапазоном версий в качестве одноранговой зависимости. К сожалению, один из дочерних проектов рабочей области использует версию, отличную от дочернего проекта, который использует библиотеку. В результате им требуются разные версии.

Я пытаюсь использовать выборочные разрешения, чтобы справиться с этим и заставить его использовать правильную версию (https://yarnpkg.com/lang/en/docs/selective-version-resolutions/), но мне не повезло.

Возможно, я неправильно понимаю, как их использовать.

Моя текущая настройка - у меня есть корневое рабочее пространство с этими дочерними элементами внутри: Project A package.json (который является источником проблемы):

   dependencies: {
      backbone.marionette: '2.4.1'
   }

Project B package.json (у приложения есть проблемы):

  dependencies: {
         backbone.marionette: '1.8.8',
         @organization/UILibrary: '0.0.22'
   }

Пакет @ organization / UILibrary (который находится вне рабочей области) выглядит так:

  peerDependencies: {
       backbone.marionette: ">= 1 < 3"
  }

К сожалению, даже несмотря на то, что Проект B не зависит от Проекта A, когда @ organization / UILibrary загружается в Проект B, он получает backbone.marionette версии 2.4.1 для своих требований (тогда как локальный для Project B получает 1.8.8 ).

Моя попытка использовать разрешения обновляет пакет Project B package.json следующим образом:

   dependencies: {
         backbone.marionette: '1.8.8',
         @organization/UILibrary: '0.0.22'
    },
    {
    "resolutions": {
        "@organization/**/backbone.marionette": "1.8.8",
        "@organization/backbone.marionette": "1.8.8",
        "@organization/UILibrary/backbone.marionette: "1.8.8",
        "@organization/UILibrary/**/backbone.marionette: '1.8.8"
    }

Есть идеи? Основываясь на некоторых проблемах с пряжей и некоторых из их PR с зависимой зависимостью (см. https://github.com/yarnpkg/yarn/issues/4874) Я полагаю, это может быть связано с тем, что UILibrary ограничена (имеет косую черту).

1 Ответ

0 голосов
/ 19 апреля 2019

Я недавно столкнулся с чем-то похожим; я обнаружил, что resolutions работает только в корне package.json. Попробуйте переместить туда resolutions вместо пакета В.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...