Удалите дубликаты пакетов и разницу между установкой пряжи --pure-lockfile и установкой пряжи Frozen-Lockfile - PullRequest
0 голосов
/ 22 мая 2018

Мой package.json (react-native@0.55.4 требует response@16.3.1)

  "dependencies": {
    "expo": "^27.0.1",
    "react": "16.3.1",
    "react-native": "~0.55.2",
    "react-navigation": "^2.0.1"
  }

Я получаю дубликаты пакетов в моем файле yarn.lock.

 react@16.3.1:
 version "16.3.1"
 resolved "https://registry.yarnpkg.com/react/-/react-16.3.1.tgz#4a2da433d471251c69b6033ada30e2ed1202cfd8"
 dependencies:
   fbjs "^0.8.16"
   loose-envify "^1.1.0"
   object-assign "^4.1.1"
   prop-types "^15.6.0"

react@^16.0.0:
  version "16.3.2"
  resolved "https://registry.yarnpkg.com/react/-/react-16.3.2.tgz#fdc8420398533a1e58872f59091b272ce2f91ea9"
  dependencies:
    fbjs "^0.8.16"
    loose-envify "^1.1.0"
    object-assign "^4.1.1"
    prop-types "^15.6.0"

Запуск $ yarn remove react, приводит к.

 react@^16.0.0:
  version "16.3.2"
  resolved "https://registry.yarnpkg.com/react/-/react-16.3.2.tgz#fdc8420398533a1e58872f59091b272ce2f91ea9"
  dependencies:
    fbjs "^0.8.16"
    loose-envify "^1.1.0"
    object-assign "^4.1.1"
    prop-types "^15.6.0"

Если я попытаюсь запустить его снова, я получу error This module isn't specified in a manifest.

Как заставить пряжу удалить все версии реакции, так чтоЯ могу вручную установить нужную мне версию?

yarn install просто добавьте оба пакета.

Решит ли это yarn install --pure-lockfile или yarn install --frozen-lockfile?

1 Ответ

0 голосов
/ 22 мая 2018

Итак, из исследования (https://github.com/yarnpkg/yarn/issues/4379)

Frozen-lockfile, поскольку он потерпит неудачу только в том случае, если ваш файл блокировки нуждается в изменении и не согласован. Pure-lockfile у вас может быть файл блокировки, близкий к бесполезному или очень неточномуно вы все равно не получили бы ошибку. Yarn просто использовал бы внутренние разрешения, которые он рассчитал счастливо.

В конечном итоге я разрешаю дублирующиеся пакеты Как переопределить вложенные зависимости с помощью `yarn`? .Использование разрешений в package.json

"resolutions": { "react": "16.3.1" }

...