![]() A warning will be printed to suggest restarting the dev server when you modify, , and while the dev server is running.expo folder, meaning runs are more idempotent - before this change, URL arguments like -port could leak into different Expo CLI processes. Reduced global side-effects of npx expo start to a single ngrok value in the.npx expo customize allows you to pass in filenames to generate without prompting: npx expo customize.npx expo run:android now has a -no-build-cache argument to match npx expo run:ios.We’ve also added a -check flag which can be used in CI to fail if packages are outdated. You can also provide specific packages to fix like npx expo install expo-sms -fix. npx expo install now has a -fix flag which installs the correct versions of installed packages. ![]() Sending massive console.logs is now supported.npx expo is now an alias for npx expo start.Since we were planning a rewrite, figured it would be a good time to simplify everything and add some quality of life features. We’ve already begun shipping new Metro features starting with experimental web support, and have PRs open for context modules. The new local CLI sets us up perfectly to start supporting these features. We have plans to improve the Metro bundler and provide a more modern developer experience with features like React Suspense, context modules, and Metro for web. We’re pleased to announce that in the new Local Expo CLI, expo eject is no longer available, it’s been fully replaced by npx expo prebuild! Bundling Improvements With this in place we could safely move away from the concept of “ejecting” in favor of “prebuilding” which every project has to go through before native building. ![]() Prebuild supports generating native configuration from every field in the Expo config file ( app.json & ) and is designed for library authors to extend the process using a system called “Expo Config Plugins”. In early 2021 ( Expo SDK 41), we introduced support for custom native code in managed workflow projects with EAS Build and a CLI command called expo prebuild - which works like a bundler for generating native projects, where the output folders are ios and android. ![]() None of this is true anymore, and so we have removed the “eject” command from the local CLI. But, this used to be necessary when developers wanted to add native modules that weren’t in the Expo SDK ( more information in “Expo managed workflow in 2021”). You were not provided with a metaphorical parachute, so the landing upon ejecting was usually pretty rough - sometimes the project required additional configuration to build, and you couldn’t lean on Expo’s update or build service anymore. When expo eject was first introduced, the word “eject” was a fairly accurate description of what it would do: it would suddenly throw out you from the comforts of the Expo ecosystem. So, no need to worry about seeing fewer updates to the Local Expo CLI, we’re still actively building new features and fixing bugs - these will be released at the same cadence as other Expo SDK packages. Most of the updates users were getting to the legacy Expo CLI were related to the cloud services, essentially had no overlap with the tools used for local development. For example, modern tools like CodeSandbox, Replit, and Blitz can potentially be used for building universal apps in the browser as an alternative to Snack. Now that we’ve moved these features, Expo apps are much easier to use in more places. The classic build service required native binaries like Fastlane for code signing which complicated the overall package. Most of what lived in the legacy global CLI now lives in eas-cli which is agnostic to the Expo SDK version (available for use in any React Native app) and therefore doesn’t need to be installed in a user’s project.
0 Comments
Leave a Reply. |