Почему при попытке установить expo не установлена последняя версия?

#react-native #expo

Вопрос:

Я хотел выполнить run:android команду, но обнаружил, что expo-cli имеющаяся у меня версия несовместима с установкой версии expo SDK, необходимой для выполнения run:android команды; требуемая версия SDK составляет 41 и выше.

Для expo-cli установки SDK 41 и выше требуется 4.4.1, который я пытался установить, но он не работал хорошо. После ввода команды начинается процесс установки, и кажется, что все установлено как обычно, как и в других пакетах. Но при проверке версии cli он выдает ту же версию , что и раньше.

Почему это происходит?

Последней попыткой было удалить и установить его снова. Вот команды и их результаты:

 $ npm -g uninstall expo-cli 
 $ npm install -g --force expo-cli
npm WARN using --force I sure hope you know what you are doing.
npm WARN deprecated graphql-tools@3.0.0: This package has been deprecated and now it only exports makeExecutableSchema.nAnd it will no longer receive updates.nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.nCheck out https://www.graphql-tools.com to learn what package you should use instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated querystring@0.2.0: The
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14 . Upgrade to chokidar 3 with 15x less dependencies.        
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14  and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated uuid@3.0.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
C:UsersUserAppDataRoamingnpmexpo -> C:UsersUserAppDataRoamingnpmnode_modulesexpo-clibinexpo.js
C:UsersUserAppDataRoamingnpmexpo-cli -> C:UsersUserAppDataRoamingnpmnode_modulesexpo-clibinexpo.js
  expo-cli@4.12.0
added 1646 packages from 751 contributors and updated 3 packages in 243.278s 

P. S1: команда «выполнить:android» дает это:

 $ expo run:androd
"run:androd" is not an expo command -- did you mean build:android?
 See "expo --help" for the full list of commands. 

Ответ №1:

Понимание проблемы

Если я правильно понимаю, вы обновили Expo-CLI до последней версии, используя: npm install -g expo-cli . Это сработало нормально, но ваш проект все равно выходит из строя из-за неправильной ошибки SDK, упомянутой выше?

Решение

Похоже, вы обновили интерфейс командной строки Expo, а не версию SDK Expo, используемую для вашего конкретного проекта.

Чтобы обновить свой проект до использования последней версии Expo SDK, используйте команду: expo upgrade .

Чтобы обновить проект до определенного пакета SDK Expo, используйте команду: expo-upgrade @{your_sdk_version} . Например: expo-upgrade @41.0.0