Как правильно разрешать зависимости NPM в проектах, для которых требуются конфликтующие версии?

#node.js #reactjs #react-native #npm #react-native-navigation

#node.js #reactjs #реагировать-родной #npm #реагировать-native-навигация

Вопрос:

Я пытаюсь создать приложение playground для react-native-navigation использования инструкций здесь. Простой npm install сбой, потому что одноранговые зависимости имеют react: "*" и react-native: "*" , поэтому сегодня (январь 2021) NPM пытается установить react@17.0.1 , но также пытается установить react-native@0.63.4 , что требует react@16.13.1 . Я получаю следующую ошибку:

 npm ERR! While resolving: react-native-navigation@7.7.0
npm ERR! Found: react@17.0.1
npm ERR! node_modules/react
npm ERR!   peer react@"*" from the root project
...
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"16.13.1" from react-native@0.63.4
npm ERR! node_modules/react-native
npm ERR!   peer react-native@"*" from the root project
npm ERR!   peer react-native@">=0.59" from @react-native-community/datetimepicker@2.6.2
npm ERR!   node_modules/@react-native-community/datetimepicker
npm ERR!
 

Затем я попытался решить эту проблему, установив react@16.13.1 в свой корневой проект, надеясь, что NPM обнаружит и использует эту версию в качестве одноранговой зависимости, но затем выясняется @react-native-community/datetimepicker@2.6.2 , что это зависит от react-native-windows@^0.6.20 , что зависит от react@16.11.0 , выдавая мне вместо этого эту ошибку:

 npm ERR! Found: react@16.13.1
npm ERR! node_modules/react
npm ERR!   dev react@"16.13.1" from the root project
...
npm ERR! Could not resolve dependency:
npm ERR! peer react@"16.11.0" from react-native-windows@0.62.20
npm ERR! node_modules/@react-native-community/datetimepicker/node_modules/react-native-windows
npm ERR!   optional react-native-windows@"^0.62.0-0" from @react-native-community/datetimepicker@2.6.2
npm ERR!   node_modules/@react-native-community/datetimepicker
npm ERR!     dev @react-native-community/datetimepicker@"^2.5.0" from the root project
npm ERR!     1 more (react-native-ui-lib)
npm ERR!
 

Как мне разобраться в этом? Я ожидал , что все будет просто работать npm install . Как правильно установить проект, или обычно приходится постоянно отлаживать конфликты зависимостей перед запуском проекта?

Комментарии:

1. Я попробовал и не получил никакой ошибки.

Ответ №1:

Как оказалось, я использовал узел 15.0.x, который, по-видимому, слишком новый. Понижение до 14.15.1 сработало.

Комментарии:

1. Выберите ответ, который решает проблему, даже если OP отвечает на свой собственный вопрос.

Ответ №2:

Я тоже использовал узел 15.0.x. Понижение до 14.x.x сработало.

Ответ №3:

Попробуйте выполнить установку npm —legacy-peer-deps