#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