Мой 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, приводит к.
$ 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.
error This module isn't specified in a manifest.
Как заставить пряжу удалить все версии реакции, так чтоЯ могу вручную установить нужную мне версию?
yarn install просто добавьте оба пакета.
Решит ли это yarn install --pure-lockfile или yarn install --frozen-lockfile?
yarn install --pure-lockfile
yarn install --frozen-lockfile
Итак, из исследования (https://github.com/yarnpkg/yarn/issues/4379)
Frozen-lockfile, поскольку он потерпит неудачу только в том случае, если ваш файл блокировки нуждается в изменении и не согласован. Pure-lockfile у вас может быть файл блокировки, близкий к бесполезному или очень неточномуно вы все равно не получили бы ошибку. Yarn просто использовал бы внутренние разрешения, которые он рассчитал счастливо.
В конечном итоге я разрешаю дублирующиеся пакеты Как переопределить вложенные зависимости с помощью `yarn`? .Использование разрешений в package.json
"resolutions": { "react": "16.3.1" }