Giter Site home page Giter Site logo

expo / expo-cli Goto Github PK

View Code? Open in Web Editor NEW
2.6K 51.0 479.0 128.86 MB

Tools for creating, running, and deploying universal Expo and React Native apps

Home Page: https://docs.expo.io/workflow/expo-cli/

JavaScript 6.75% Shell 0.01% HTML 6.86% TypeScript 86.38%
expo cli react-native react-native-web webpack

expo-cli's Introduction

The modern local Expo CLI is included with the expo package and does not need to be installed separately. Run it with npx expo. Its source code lives in the expo/expo repo.


Assorted Expo Dev Tools

This repo consists of packages used in the legacy global Expo CLI and related tooling.

πŸ“š Documentation

Learn about building and deploying universal apps in our official docs!

πŸ—Ί Project Layout

Package Version
expo-cli badges
expo-codemod badges
@expo/image-utils badges
@expo/json-file badges
@expo/next-adapter badges
@expo/osascript badges
@expo/pkcs12 badges
@expo/plist badges
pod-install badges
expo-pwa badges
@expo/schemer badges
uri-scheme badges
@expo/webpack-config badges

πŸ‘ Contributing

If you like the Expo CLI and want to help make it better then check out our contributing guide! Also check out the Expo repo to work on the Expo docs, modules, and components in the Expo SDK.

❓ FAQ

If you have questions about Expo and want answers, then check out our Frequently Asked Questions!

If you still have questions you can ask them on our forums or on Twitter @Expo.

πŸ’™ The Team

Curious about who makes Expo? Here are our team members!

License

The Expo source code is made available under the MIT license. Some of the dependencies are licensed differently, with the BSD license, for example.

expo-cli's People

Contributors

anp avatar bbarthec avatar brentvatne avatar bycedric avatar cruzach avatar dsokal avatar esamelson avatar evanbacon avatar freiksenet avatar fson avatar fxfactorial avatar ide avatar jakubste avatar jesseruder avatar jimmylee avatar kbrandwijk avatar keith-kurak avatar kgc00 avatar kudo avatar nicknovitski avatar nikki93 avatar quinlanj avatar satya164 avatar simek avatar sjchmiela avatar terribleben avatar tsapeta avatar wilzh40 avatar wkozyra95 avatar wschurman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

expo-cli's Issues

expo/xdl is ignoring status check errors

Environment

Environment:
OS: macOS High Sierra 10.13.4
Node: 8.11.1
Yarn: 1.5.1
npm: 5.6.0
Watchman: 4.9.0
Xcode: Xcode 9.2 Build version 9C40b
Android Studio: 3.0 AI-171.4443003

Packages: (wanted => installed)
expo: ^25.0.0 => 25.0.0
react: ^16.2.0 => 16.2.0
react-native: https://github.com/expo/react-native/archive/sdk-25.0.0.tar.gz => 0.52.0

Target: Anything...

Steps to Reproduce

If your /etc/hosts file is bad, expo will try to open a tunnel with ngrok, but will fail to check the status at localhost:19001. It will retry the check forever and will never know if the tunnel is up or not.

  1. Replace /etc/hosts with an empty file (backup first!)
  2. Run exp start.
  3. The Bundler will start but Expo will never say it is ready and will never show up the URL.

Expected Behavior

I'm not sure what should be the expected behaviour, but at least we should get notified of the errors we are getting when expo/xdl checks the ngrok status. So, my suggestion would be to log the errors when EXPO_DEBUG=true.

Actual Behavior

The Bundler will start but Expo will never say it is ready and will never show up the URL.

Reproducible Demo

No need to generate a Snack for this. Just use the generated app and damage your /etc/hosts file.

Add version check

I upgraded my app to SDK 22 today, at least I thought I did. I made all the changes to my package.json, removed and reinstalled the node modules, so far so good. But apparently, I forgot to save my app.json, so it was still pointing to sdkVersion 21. The result was a very non-descriptive error when running the app on my device:
image
With some help on Slack, I figured out what the issue was. But it seems it could be very helpful if the XDE would check these version settings when opening a project.
Also, I'm wondering what the added benefit is of having to explicitly specify a sdkVersion in app.json, as it has to be identical to the version of expo I reference in my package.json anyway.

Show a larger QR code

From #3 (comment):

@jimmylee: [Small Concern] I did experience something that @jesseruder has pointed out numerous times in the past with the QR Code. Old Android phones are just not good at reading it from a distance, I had to have my android phone 3 inches from my screen.

"The batch file can not be found" when detaching to ExpoKit on windows (harmless but annoying message)

Environment

Environment:
OS: Windows 10
Node: 8.10.0
Yarn: 1.5.1
npm: 5.8.0
Watchman: Not Found
Xcode: N/A
Android Studio: Version 3.0.0.0 AI-171.4443003

Packages: (wanted => installed)
expo: ^26.0.0 => 26.0.0
react: 16.3.0-alpha.1 => 16.3.0-alpha.1
react-native: https://github.com/expo/react-native/archive/sdk-26.0.0.tar.gz => 0.54.2

Diagnostics report:
https://exp-xde-diagnostics.s3.amazonaws.com/jaugustinus-ef24bdd1-a262-406f-bc79-230d5c1f62c8.tar.gz

Steps to Reproduce

create-react-native-app test

cd test

npm run eject

When asked choose to eject to Expokit
errors will appear on screen
2018-04-05T01_01_21_097Z-debug.log

Expected Behavior

No errors

(Write what you thought would happen.)

Actual Behavior

See attachment

Reproducible Demo

https://github.com/joshua-tmc/expo-test.git

`Error starting tunnel: XDLError: Parse Error`

When I start a project I get the following message:

Error starting tunnel: XDLError: Parse Error

Then when I try to get the tunnel URL I get the following message:

Switched to a LAN URL because the tunnel appears to be down. Only devices in the same network can access the app. You can restart the project to try reconnecting.

Any ideas?

expo-cli tunnel issues on Ubuntu

Has anyone had luck using expo on Ubuntu. I’ve tried on the same network with no firewalls enabled the normal exp://localhost:19001 and exp://192.xx with a usb connected android, but get random java errors about not finding react-native/node_modules on exp://192.168.1 and the ngrok tunnel option straight up fails every time.
Everything works on my Mac but Linux is so much cooler, so would like to get it going.

14:45:39 Tunnel connected.
14:45:39 Project opened! You can now use the β€œShare” or β€œDevice” buttons to view your project.
14:45:39 Switched to a LAN URL because the tunnel appears to be down. Only devices in the same network can access the app. You can restart the project to try reconnecting.

I’ve tested ngrok (outside of expo) on a regular website and it works fine

Couldn't adb reverse: closed

I'm trying to get up and running with my recently detached app. First I run the app in Android Studio and then I try to connect my external device to Expo XDE (via usb debugging), but Expo is returning β€œTunnel connected, Couldn’t adb reverse: closed”. The external device has the error message β€œCould not load exp://j3-iqd.. Are you sure XDE or exp is running?” I've checked some of the stack overflow posts on the matter and my adb version is the same in android studio and on my local machine. Any Idea on why this isn’t working?

expo docs command

expo docs could open https://docs.expo.io in browser
expo docs "query string" could open the first search result in browser

Ubuntu 17.10 entire system freezes when JavaScript bundle builds to 100%

Environment

Environment:
OS: Linux 4.13
Node: 9.7.1
Yarn: 1.5.1
npm: 5.6.0
Watchman: Not Found
Xcode: N/A
Android Studio: Not Found

Packages: (wanted => installed)
expo: ^25.0.0 => 25.0.0
react: 16.2.0 => 16.2.0
react-native: https://github.com/expo/react-native/archive/sdk-25.0.0.tar.gz => 0.52.0

Steps to Reproduce

This happens about 8/10 times I try to run my project.

  1. Either running npm run start in terminal
  2. or running in xde client
  3. Wait for bundle to reach 100%

Expected Behavior

Project should load on my device right after.

Actual Behavior

Entire computer freezes and requires me to hold power button to restart.
System logs show this when it happens:

Mar 5 04:18:05 YianniLemur org.gnome.Nautilus[1947]: Opened project at /home/yiannitzan/dev/restaurants
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0

Reproducible Demo

(Paste the link to an example project and exact instructions to reproduce the issue.)

Link to project zip file: https://www.dropbox.com/s/d5leu2jerjd9izs/restaurants.zip?dl=0

App with large data files > Packager not happy

G'day fellas,

Firstly thanks for all the hard work, I'm loving expo/react-native! Didn't have many problems and I could find answers to most of'em but I'm now stuck with loading large data files.

My app has a map with 3k+ points and each point has 1 to 5 polygons attached. These polygons can be quite complex (read lots of data...) (example of one, and there's 3k+ of'em)

For now the 3k+ points no worries at all. The polygon situation on the other hand is a bit sticky.

I'm having something like this:

export type Coord = Array;
export type Polygon = Array;
export type Geom = Array;
export type Boundaries = {
[ItemID]: Geom
};

And a file which is 18Mb of:

boundaries["XXX"] = [[[148.507052846,-24.437629595],[148.524729893,-24.445195653] etc...
boundaries["XXX"] = [[[148.507052846,-24.437629595],[148.524729893,-24.445195653] etc...
etc...

Well, in theory it's all fine and dandy but the packager really doesn't like it. It goes to 99.7% and then the 8 cores of my machine go bonkers for what looks like forever (I didn't try to see if it reaches any success/failure, stopped after 4/5 min wait)

So my question is: "Is this supposed to work or not?" if it is supposed to work then I'm doing something wrong. If it's not intended that way I'm probably having a design issue here.

Things I've tried:

  • Reducing the size of files (it was originally 25Mb well printed, I removed all spaces and whatnot)
  • Having db/boundaries/index.js loading 10 files max 5Mb where the data is split by states => Still doesn't load

Things I haven't tried but considered:

  • Using assets for these files (but Assets says it's specifically for anything but JS, would it work?)
  • Download on start (sounds quite user unfriendly)
  • SQLite database (but I have to detach my app right? I've seen it's impossible to use a preloaded database without downloading it, am I right assuming this?)
  • Remote api and asking polygons on demand, which will be my last resort if all else fail

Is there another solution? Which one should I try first? I realise I have to decide myself but there's quite the time investment in each and any experienced advice would be gratefully received.

Cheers

Suggestion: Add option to log window output to console

Suggestion

Add an option to log window output to browser console in expo

Problem description

  • Enabling Remote JS debugging makes apps painfully slow and introduces new weird bugs since JS is executed in the browser and not in the app.
  • Viewing console.log in the expo output window becomes difficult with large objects & arrays since itΒ΄s plain text, no collapse/expand functionality.

Solution

Add an option to log window output to console on the device tab window.

This way you would benefit from both having the JS code executed in the app and having the power of expanding/collapsing objects & arrays in the browser dev tools console.

If you think itΒ΄s good suggestion I belive it would be fairly easy to implement with a checkbox on top of the device window as a switch and just console.log() all output from that window if checked.

image

xde and exp start connecting to wrong ip address with Ethernet network

I am having a problem with running expo project showing this error "Packager is not running at http://192.168.42.6:19001 ".

I am using windows 10 and android emulator.

I tried all these solutions:
Assigning interface matric (priority) for your Wifi Adapter
Setting REACT_NATIVE_PACKAGER_HOSTNAME
Behind a NAT, add port redirects for firewall
Disable VirtualBox since Expo is taking the IP address of VirtualBox

xde even exp start --lan is still connecting to a wrong IP address "exp://192.168.42.6:19000" which I don't have it at all, also I tried to connect from wifi network but still the same problem

I set react native packager like this:
setx REACT_NATIVE_PACKAGER_HOSTNAME 192.168.42.124 /M

C:\Users\XWorker_02>ipconfig
Windows IP Configuration

Ethernet adapter Ethernet 2:

Connection-specific DNS Suffix . : localdomain
Link-local IPv6 Address . . . . . : fe80::119e:d39:fbfb:d84e%16
IPv4 Address. . . . . . . . . . . : 192.168.42.113
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.42.1

Wireless LAN adapter Wi-Fi:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : localdomain

Wireless LAN adapter Yerel Ağ Bağlantısı* 10:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Wireless LAN adapter Yerel Ağ Bağlantısı* 1:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Ethernet adapter Bluetooth Ağ Bağlantısı 2:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

i started to lose my hope so please any help!!

Validate iOS Icon transparency before proceeding with `exp build`

Hi there,

First πŸ‘ for the work! It's smooth and cool πŸ‘

Second, I have found a annoying edge case which can be solved: when uploading a ios build, RGBA images are not tolerated. Meaning that you will get that at the end of the journey:

image

So what about checking it BEFORE creating the build to avoid an expensive process and/or writting EXPLICITILY in the docs?

Keep coding, you're awesome πŸ˜‰

Updated Engineering & Design Task List

  • Blocking - Critical issues appearing as the default window.
  • Blocking - Entire page going black after a certain duration of time.
  • Add user information to graphQL query.
  • Show username in publish section url.
  • Rename critical issues to issues, use yellow for warnings, and red for blocking issues.
  • Selecting β€œtunnel” URL type has a long delay
  • Add an indicator of unread logs in each log tab
  • Make it clearer how to exit the publish modal
  • Toasts shown after opening a simulator or sending the link never go away unless dismissed
  • Clicking the icon next to URL should copy the URL
  • Make the project name more prominent
  • Add a way to clear a log
  • Critical: node 10 bug - expo/universe#2552
  • Critical: closing the cli appears to have no impact on the web UI
  • Important: add interact prompt to expo-cli in the same way that it works for CRNA
  • Important: Change prefix from [exp] to [expo] or remove prefix entirely
  • Important: expo ios and expo android should start packager and launch like on CRNA. -> https://github.com/expo/universe/issues/2671
  • Remove the warning about not using the Expo fork of RN -> https://github.com/expo/universe/issues/2672
  • V2? Disabling wifi should change the indicator in the browser -> #11
  • V2? Change default from Tunnel to better option if there is one. -> https://github.com/expo/universe/issues/2673

`exp detach` might provide better information about how to provide a valid Android package

After running exp detach it asks you What would you like your Android package name to be?

and if you do not specify a name with a dot in it, Android Studio will return 'INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME' Invalid manifest package: must have at least one '.' separator. and will not generate an apk.

My suggestion is to improve the help message to:

What would you like your Android package name to be? (must contain a dot)

Feedback from interviewees

Issues that would break current workflow or prevent people from getting up and running

Bugs

  • the iOS and Android Simulator/Device buttons are grayed out without explanation (restarting expo fixed)

Other Feedback

  • too many fonts are unnecessarily monospace in the webapp
  • switching the connection between Tunnel, LAN, and Local feels laggy and awkward
  • docs? Using a new tool, I like to have docs
  • the β€œMETRO BUNDLER” log has a confusing active/inactive state switch β€” it has a very-visible blue border when active and a dark gray border when inactive, yet there isn’t anything to do aside from clear the log
  • switching production mode on and off doesn’t give feedback that anything actually changed aside from the toggle being switched. I'd like a line in the metro log that says "switched to XXX"
  • expo publish:details is inconsistent on whether it’s referring to a β€œpublish id” or a β€œpublication id”
  • Display the logged in user (since we use a single user to publish atm (and have had some issues with publishing as the wrong user :P))
  • One small feature that could be nice is the ability to nickname devices since it’s not immediately obvious which device is which with default simulators.
  • miss ability to restart packager from web
  • publishing to GUI: seems scary. I wanted to publish to a specific release channel and make sure nothing was messed up given that I absolutely don’t want to publish to the default channel, I didn’t want to push the button. right now it’s non-obvious what is destructive and what is non-destructive, having a consistent paradigm for potentially destructive action would make me feel safer (I think this might be broader feedback than just the publish screen in the GUI)

Unexpected behavior using a custom config file path unless it is named exactly app.json

Steps to Reproduce

This behavior appears when running exp start with the --config flag and providing a path to a file that is not named exactly app.json. The current implementation assumes that if the file is named anything other than app.json, it must be using the old exp.json structure which doesn't nest the config under a key called expo.

To reproduce:

  1. Rename app.json to any other name.
  2. Run exp start --config <path_to_not_app.json_config>
  3. The app will fail to run due to not pulling the correct config

Expected Behavior

The user should be able to use the --config flag without needing to change the structure of the config file, or needing to preserve the name app.json and nesting different configs in different directories (these are the only current workarounds).

Actual Behavior

The current implementation will assume that the config is using the old exp.json format and will fail to locate the config values because it will not correctly look for them under the key called expo.


I spoke with @fson on Slack about this, and am opening a PR in xdl that will fix the issue with his suggested solution (reversing the logic so that the config is assumed to use the app.json format unless it is called exactly exp.json). I thought I should still open an issue so I could reference it and you guys can track the bug/task more easily.

postPublish hook broken for sentry-expo/upload-sourcemaps

Hi, I just updated to expo-cli from exp and seeing this error.

app.json (excerpt, unchanged since using exp)

{
  "expo": {
    "hooks": {
      "postPublish": [
        {
          "file": "sentry-expo/upload-sourcemaps",
          "config": {
            "organization": "myapp",
            "project": "mobile",
            "authToken": "sometoken"
          }
        }
      ]
    }
  }
}

Please note that the file exists in ./node_modules/sentry-expo/upload-sourcemaps.js.

Error

This is the error when try to publish my app.

[20:28:28] Unable to load postPublishHook: 'sentry-expo/upload-sourcemaps'
[20:28:28] Please fix your postPublish hook configuration.

It would be great to hear how could I get Sentry back to the streamline.

Error on expo start

Description

Create a new app with expo init and start it with expo start

Expected Behavior

Expo Dev Tools, should pop up in the web browser automatically when run expo start

Observed Behavior

[13:28:27] Starting Metro Bundler on port 19001.
[13:28:27] Metro Bundler ready.
[13:28:35] Tunnel ready.
[13:28:35] Expo DevTools is running at http://localhost:19002
[13:28:35] Opening DevTools in the browser... (press shift-d to disable)
Error: spawn cmd ENOENT
at _errnoException (util.js:992:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at onErrorNT (internal/child_process.js:372:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)

Environment

Environment:
OS: Windows 7
Node: 8.11.3
Yarn: Not Found
npm: 5.6.0
Watchman: Not Found
Xcode: N/A
Android Studio: Not Found

Packages: (wanted => installed)
expo: ^30.0.1 => 30.0.1
react: 16.3.1 => 16.3.1
react-native: https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz => 0.55.4

Add suggestion to run "Reset Content and Settings" on simulator if `xcrun simctl openurl booted` fails

❯ exp ios
[exp] Making sure project is set up correctly...
[exp] Your project looks good!
[exp] Downloading latest version of Expo
\[exp] Installing Expo on iOS simulator
[exp] Opening exp://localhost:19000 in iOS simulator
[exp] Error running `xcrun simctl openurl booted exp://localhost:19000`: An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=1):
The request to open "host.exp.Exponent" failed.
The request was denied by service delegate (SBMainWorkspace) for reason: Unspecified.

[exp] Error installing or running app. Error: Process exited with non-zero code: 1

XDL PackageLogsStream may be able to handle more types of packager events

https://github.com/expo/xdl/blob/cf53633e47bdbc56a7a6549a5838f15c6973f4db/src/logs/PackagerLogsStream.js#L96-L119

  _handlePackagerEvent = (chunk: any) => {
    let { msg } = chunk;


    if (!msg.type) {
      return;
    } else if (msg.type && msg.type.match(/^bundle_/)) {
      this._handleBundleTransformEvent(chunk);
      return;
    }


    if (msg.type === 'dep_graph_loading') {
      chunk.msg = 'Loading dependency graph.'; // doesn't seem important to log this
    } else if (msg.type == 'dep_graph_loaded') {
      chunk.msg = 'Dependency graph loaded.'; // doesn't seem important to log this
    } else if (msg.type === 'transform_cache_reset') {
      chunk.msg = 'Your JavaScript transform cache is empty, rebuilding (this may take a minute).';
    } else if (msg.type === 'initialize_packager_started') {
      chunk.msg = `Running packager on port ${msg.port}.`;
    } else {
      chunk.msg = '';
    }


    this._enqueueAppendLogChunk(chunk);
  };

It matches only 4 event types and if it doesn't match it removes the error.

I had to manually add a console.log statement to find the reason my build wasn't working.

   { type: 'worker_stderr_chunk',
     chunk: 'module.js:538\n    throw err;\n    ^\n\nError: Cannot find module \'babel-template\'\n    at Function.Module._resolveFilename (module.js:536:15)\n    at Function.Module._load (module.js:466:25)\n    at Module.require (module.js:579:17)\n    at require (internal/module.js:11:18)\n    at Object.<anonymous> (/Users/Vaughan/dev-live/photo-booth-ios-crna/node_modules/.registry.npmjs.org/metro-pnpm/0.24.7-vjpr.1/node_modules/metro-pnpm/src/ModuleGraph/worker/collectDependencies.js:15:23)\n    at Module._compile (module.js:635:30)\n    at Object.Module._extensions..js (module.js:646:10)\n    at Module.load (module.js:554:32)\n    at tryModuleLoad (module.js:497:12)\n    at Function.Module._load (module.js:489:3)\n' } }

Why not just set chunk.msg = msg.chunk || '' instead of chunk.msg = ''?

Is there a verbose mode?

expo start : Could not access packager status at http://localhost:19001/status. Are you sure the packager is running and reachable?

Hi, I try to make an expo projet but I always have the error.
Here is the list of command :

  1. yarn global add expo-cli
  2. expo init
  3. cd testexpo / expo start

But i always reach this error : "Could not access packager status at http://localhost:19001/status. Are you sure the packager is running and reachable?"

Below the complete command/response :

➜ test yarn global add expo-cli
yarn global v1.9.4
[1/4] πŸ” Resolving packages...
[2/4] 🚚 Fetching packages...
info @expo/[email protected]: The CPU architecture "x64" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The CPU architecture "x64" is incompatible with this module.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The CPU architecture "x64" is incompatible with this module.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The CPU architecture "x64" is incompatible with this module.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The CPU architecture "x64" is incompatible with this module.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The CPU architecture "x64" is incompatible with this module.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info @expo/[email protected]: The platform "darwin" is incompatible with this module.
info "@expo/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] πŸ”— Linking dependencies...
[4/4] πŸ“ƒ Building fresh packages...

success Installed "[email protected]" with binaries:
- expo
- expo-cli
✨ Done in 3.07s.
➜ test expo init
? Choose a project name: testexpo
? Choose a template: blank
[20:43:47] Extracting project files...
[20:43:53] Customizing project...

Your project is ready at /Users/edouardmalot/Desktop/test/testexpo
To get started, you can type:

cd testexpo
expo start

➜ test cd testexpo
➜ testexpo git:(master) βœ— expo start
[20:44:05] Starting project at /Users/edouardmalot/Desktop/test/testexpo
[20:44:12] Starting Metro Bundler on port 19001.
[20:44:12] Metro Bundler ready.
[20:44:40] Could not access packager status at http://localhost:19001/status. Are you sure the packager is running and reachable?
[20:44:40] Set EXPO_DEBUG=true in your env to view the stack trace.
➜ testexpo git:(master) βœ— export EXPO_DEBUG=tru
➜ testexpo git:(master) βœ— export EXPO_DEBUG=true
➜ testexpo git:(master) βœ— expo start
[20:45:02] Starting project at /Users/edouardmalot/Desktop/test/testexpo
[20:46:23] Starting Metro Bundler on port 19001.
[20:46:23] Metro Bundler ready.
[20:46:52] Could not access packager status at http://localhost:19001/status. Are you sure the packager is running and reachable?
_[20:46:52] Error: Could not access packager status at http://localhost:19001/status. Are you sure the packager is running and reachable?
at Timeout.onTimeout (/[email protected]/src/Project.js:1490:11)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)

➜ testexpo git:(master) βœ—

Any ideas ?

`ReferenceError: self is not defined` after re-installing npm packages

I have a fresh project using the tabs template and I'm getting ReferenceError: self is not defined after I re-install npm packages.

To reproduce:

  1. expo init foo (select tabs template)
  2. cd foo
  3. npm test (observe that tests work fine)
  4. rm -rf node_modules
  5. npm install
  6. npm test

Actual result:

 FAIL  __tests__/App-test.js
  ● Test suite failed to run

    ReferenceError: self is not defined

      at node_modules/whatwg-fetch/dist/fetch.umd.js:8:40
      at Object.<anonymous>.support.searchParams (node_modules/whatwg-fetch/dist/fetch.umd.js:2:66)
      at Object.<anonymous> (node_modules/whatwg-fetch/dist/fetch.umd.js:5:2)
      at Object.<anonymous> (node_modules/jest-expo/src/setup.js:7:47)

Expected result:

Tests pass.

Versions

  • expo 29.0.0
  • expo-cli 1.1.0
  • node 9.11.2
  • npm 5.6.0
  • yarn 1.9.4
  • OS: Linux Manjaro

[draft] Path to launching Expo Dev Tools

1. Gather team feedback

We are doing this now

2. Gather partner feedback

Share with a few partners who might be interested. We might just want to paste a canned message in most or all of our partner slack channels, saying "Hey this is an alpha version of a thing we're working on, and would love your feedback if you get a chance to try it."

Before moving to step 3...

  • Resolve all blocking issues surfaced by the Expo team
  • Respond to feedback brought up by partners (don't have to fix everything, or necessarily implement all their feedback. But try to incorporate any useful feedback we get)
  • Make sure at least one person on the Expo team has tried this on Windows and done a stability pass

3. Announce more widely, don't set as default

  • Post somewhere (slack? blog?) saying how to get the new dev tools. Clearly mark them as Beta
  • Pick a public-facing date when we are going to switch over more fully
  • Add a banner to XDE saying "XDE is deprecated and will stop receiving updates on this date"

Before moving to step 4...

  • Resolve any blocking issues we hear from the community that we didn't catch before
  • Figure out a specific migration path for how we plan to get everybody on the new workflow (from old exp, from XDE, from old CRNA)
  • Wait until the predetermined "switch" date

4. Set as default

  • Remove Beta label
  • Change our website to show the default getting started steps as Expo Dev Tools
  • Change our docs to show the default getting started steps as Expo Dev Tools
  • Make the existing-XDE banner more aggressive, like "Hey we don't support this any more, use at own risk"
  • Stop offering XDE for download

Ben's dev tools feedback

What did I test on?

  • iOS simulator + LAN
  • iOS sim + localhost
  • iOS sim + tunnel
  • iPhone SE + LAN

What did you test?

Opening a project, sending it to my device, introducing issues and fixing them.

Did I experience any bugs?

Did I experience any concerns?

  • We should align on what the first-time experience is, and I'm not sure we've done that yet.

One of the goals of this project is to have a unified getting started experience, i.e. the thing on our website, in the docs, and in the RN docs should be the same or almost-the-same so it's super clear how to get started with Expo. Charlie mentioned in his feedback that he doesn't like being prompted. Conversely, Brent asked for interactive parity with CRNA. So we need to settle on something.

  • The metro bundler logs should be visible by default, but instead the only thing I saw when my project opened was the issues window.
  • Clicking the simulator button opens a toast that never goes away until I click X on the toast. This should be a log. It may also generate further logs depending on what happens while trying to open (see: current XDE behavior).
  • Sending to a phone opens a toast too, I think this is a little weird
  • The critical issues window is entitled "Critical issues's logs" which doesn't make sense
  • It was hard to figure out which project I had open. I later noticed that my project's name was on the Publish button in the lower left corner. We might want it to be more obvious, possibly in the title of the window (instead of "Expo Developer Tools").
  • Tiny minor thing: The icon next to my url made me think I could copy it to the clipboard by clicking it. But I can't.
  • I miss being able to clear the logs in a pane.
  • When I clicked the tunnel button, it took a few seconds to do anything, but didn't provide any feedback that it was working. So at first I thought it did nothing.

What are your thoughts?

Love it, want to tie up these last few loose ends so we can ship it! I think aligning on the first-time experience and fixing the issues pane are the only two major things for me.

expo-cli not spawned on 'expo start' - ENOENT error

Description

expo start throws an ENOENT error using the latest expo-cli and following a successful expo init

Steps:

  1. Installed the new expo-cli - yarn global add expo-cli
  2. Ran expo init in a fresh directory
  3. Updated package.json, built my project
  4. When I ran expo start, it didn't recognize expo-cli as being installed and threw an error when trying to install it (see below)
  5. When I run expo-cli start, the project builds, devtools opens and expo works as expected

Expected Behavior

Expect expo start to work without having to invoke expo-cli

(By the way is there any difference?)

Observed Behavior

> expo start

This command requires Expo CLI.
Do you want to install it globally [Y/n]? Y
Installing the package 'expo-cli'...
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: spawn npm ENOENT
    at _errnoException (util.js:992:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

Environment

Please run expo diagnostics in the project folder and copy the output here:

I get the exact same error as above.

Windows 10

Build error - 404 - The requested URL /node_modules/react-native-scripts/build/bin/crna-entry.bundle was not found on this server.

Steps to Reproduce

  1. Run exp build:android

Expected Behavior

Should build normally

Actual Behavior

$ exp build:android
10:52:33 [exp] Checking if current build exists...

10:52:34 [exp] No currently active or previous builds for this project.
10:52:34 [exp] Publishing to channel 'default'...
10:52:41 [exp] Building iOS bundle
10:52:41 [exp] 404 - "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL /node_modules/react-native-scripts/build/bin/crna-entry.bundle was not found on this server.</p>\n</body></html>\n"
10:52:41 [exp] Set EXPO_DEBUG=true in your env to view the stack trace.

By re-running the command it worked... certainly not a show stopper but an issue on the build server.

Gitlab CI hangs on publish

I have an issue in my Gitlab CI setup. Here is my .gitlab-ci.yml file:

image: jdruwe/alpine-node-git:latest

variables:
  DOCKER_DRIVER: overlay

stages:
  - publish

publish-develop:
  stage: publish
  script:
  - npm install
  - npm i -g exp
  - exp login -u $EXPO_USERNAME -p $EXPO_PASSWORD
  - exp publish --release-channel develop

The 'exp login' command works fine but it seems to hang on the publish command, this is what I keep seeing (it never proceeds):

screen shot 2018-04-28 at 22 22 44

I've no idea why this is happening, there is also no logging for me to look into it seems. Any help would be appreciated!

NOTE: I also get the warning on my local machine but the publish does start afterwards with Starting Metro Bundler on port 19001. ...

QA on [email protected]

What did I test on?

  • iOS Simulator
  • iOS device
  • chrome
  • OSX

What did you test?

  • onboarding
  • online / offline
  • sending the link to my phone
  • publishing my project
  • developing snack app

Did I experience any bugs?

  • the entire page would go completely black after a while. restarting expo appeared to fix
    image

  • there was no indication I was offline when I disabled wifi

Did I experience any confusion?

  • I didn't understand the command was just expo at first. Would be nice to get a name such that npm i -g $NAME && $NAME does something (unless the idea is exp just gets updated to this)
  • When I first get to the page there isn't a call to action. For snack, getting the experience running on the device or simulator is a very important moment, and I suspect this will work similarly.
  • It's not clear who I'm publishing as

Do I have any nits?

  • I think I defaulted to a tunnel connection
  • the simulator buttons launched a toast that just hangs around regardless of what happens with the attempt
    image
    this wasn't great for android (didn't work) or if I already had the simulator open (it updates but I didn't know to go look for it
  • since we only display the number of panes you can fill with unique content, prefill them or add some text for drag & drop discovery?
  • the publish modal was a little hard to escape. I expected escape and clicking on one of the logs to take me back. Some indication that "Publish to expo.io" is selected would be nice
  • SMS is great for new users but pretty clunky once I have the app. Steering people towards "Recently in development" seems better

Things I missed from XDE

  • clearing logs: I debug with liberal use of console.log, and having a way to wipe the logs so I can easily look at just the logs from this execution / since some action is super useful
  • toggling dev/prod

What are your thoughts?

  • This is really slick :) and probably the best handling of logs we've produced
  • switching tunnel / lan is really nice and fast
  • Snack is a pretty weird use case, but having this and snack both in browser was a more challenging adjustment than I expected. I'll probably end up opening this in a different browser than my default so I can get Tab cycling back
  • Aside from that and log clearing it felt pretty nice to develop with
  • I think I'd want to see who I am and maybe what build channel I'm targeting before I'd switch to publishing

expo mobx decorator

Hi, I have a lot of problems configuring my environment for mobx, I can not use decorator, I install symbols, babel-plugin-transform-decorators-legacy, and many packages in different ways, and I try many times, but I can not, most of them they are babel, I try to update to babel / core: "7.0.0", but it always says 6.2.3 and it is not compatible with decorators,

I think there are good improvements in the package (when it says basic template or tab) that you can choose a mobx and redux template. and the environment is configured from the beginning.

someone use mobx with expo? or do you have a boilerplate?

Error when using expo-cli

I am getting the below error and I am using expo-cli 2.0.0.

simulator screen shot - iphone 6 - 2018-09-13 at 10 37 49

I think it is related to package called whatwg-fetch. Is a fix coming soon?

Xcode 10: Command PhaseScriptExecution failed with NVM

Description

I have expo-cli installed globally through NPM (that is installed on my system using nvm).
I ejected Expo to install Cocoapods depedendencies for Expo GL (EXGL).

Expected Behavior

Run Xcode Build and get a compiled app.

Observed Behavior

Xcode build fails.

Please install expo-cli command
Command PhaseScriptExecution failed with a nonzero exit code

Environment

Environment:
OS: macOS High Sierra 10.13.6
Node: 10.8.0
Yarn: Not Found
npm: 6.4.1
Watchman: Not Found
Xcode: Xcode 10.0 Build version 10A255
Android Studio: Not Found

Packages: (wanted => installed)
expo: ^30.0.1 => 30.0.1
react: 16.3.1 => 16.3.1
react-native: https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz => 0.55.4

Diagnostics report:
https://exp-xde-diagnostics.s3.amazonaws.com/pieterbeulque-768c02ed-a08c-4951-9f56-e887077ab919.tar.gz

Also specify:

  • Phone/emulator/simulator platform, model and version:

xCode 10.0 with any simulator.

Expo-Cli Alpha: QA Session

What did I test on?

  • iOS Simulator
  • Android Phone
  • iOS Phone
  • Using Google Chrome

What did you test?

  • 3 devices
  • switching between grid options
  • being online
  • sending the link to my phone
  • selecting and dragging options
  • updating fields in the publish section.
  • publishing my project

Did I experience any bugs?

[Blocking] Critical Issues appearing as the default window.

  • When you connect a new device, observe that a grid option appears in the top right.
  • When you click it, expect to see a unused device appear in the new window.
  • You actually get the "critical issues" tab.

bug3

  • Whats even worse, is when you reduce the amount of windows, and then open up more windows, the critical issues window is the default. the default should be an unused device. and if there are no critical issues, it should never be a critical issue window.

Did I experience any concerns?

  • [Very Small Concern] Not sure if devices should ever disappear? I guess it makes sense for them not to because you'll want to read through the logs even after a crash.
  • [Small Concern] I'm not sure ellipsis is the right approach for the URL, because they will never be able to copy and paste the string. I know thats probably not a big deal.

screen shot 2018-05-14 at 10 29 51 pm

  • [Small Concern] I did experience something that @jesseruder has pointed out numerous times in the past with the QR Code. Old Android phones are just not good at reading it from a distance, I had to have my android phone 3 inches from my screen.

What are your thoughts?

  • I tried a lot of the features, and even republished my project to the web, I didn't encounter any problems other than the ones I pointed out here.
  • I like using the GUI to publish more than the command line. So much easier to update fields before publishing too.
  • I can't wait to extend this experience post launch and support our users better.
  • @fson and @freiksenet did a great job!! 🍾 πŸŽ†
  • Life is great 😎

Generating iOS certificates is broken on Windows

It seems that generating iOS certificates is broken on Windows. When someone tries to generate them, the only error message he gets is error while gathering & validating credentials. The issue was originally reported by @matthewjj on Expo Developers Slack.

Remaining tasks till launch

Remaining Tasks

Final Stretch

  • Integration into exp codebase.
  • QA + Release

Android app displayed on half of the screen when rotated from landscape to portrait

Also posted in https://stackoverflow.com/questions/52365463/android-app-displayed-on-half-of-the-screen-when-rotated-from-landscape-to-portr

I don't know which is the right place to post this, thought that I will try here, since the problem occurs when I use expo-cli to build an apk.

I have created with expo a simple android app that is available here:
https://exp.host/@rahamin/Israel-Weather

Then I created an apk which may be found here:
https://expo.io/artifacts/0328214e-13b1-462a-a803-a3d64ad798f9

(the weird letters are Hebrew…)

  • When I start the app within expo in landscape mode and rotate to portrait, everything looks fine.
  • However, when I do the same thing with the apk, the app is displayed (in the portrait) only on half of the screen.
  • In both cases the app looks fine if starting in portrait mode

Screenshots of both cases are attached below.

Any idea how to fix that? The app is using Expo's MapView, doesn't seem to me as relevant to the problem…

Here is the code of the main component:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { AppState, Dimensions, View, Text, ActivityIndicator, Image } from 'react-native';
import { MapView } from 'expo';
import _ from 'lodash';
import { CardSection, MyButton } from './common';
import { fetchCountry } from '../actions';
import { PORTRAIT, LANDSCAPE, ACTIVE, INACTIVE } from '../helpers/constants';
import { getCountryInfo } from '../helpers/countryForecastHelpers';
import { israelRegionPortrait, israelRegionLandscape } from '../helpers/mapsHelpers';

class MapDisplay extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isMapReady: false,
      aboutModalVisible: false,
      helpModalVisible: false,
      region: israelRegionPortrait,
      zoomed: false,
      resetRegion: israelRegionPortrait,
      dim: {},   // { width: , hight: }
      appState: INACTIVE
    };
    this.initRegion = this.initRegion.bind(this);
    this.onRegionChangeComplete = this.onRegionChangeComplete.bind(this);
    this.handleAppStateChange = this.handleAppStateChange.bind(this);
    this.handleDimensionsChange = this.handleDimensionsChange.bind(this);
    this.setDimensionsAndOrientation =
      this.setDimensionsAndOrientation.bind(this);
  }

  componentDidMount() {
    const initialDim = Dimensions.get('window');
    this.setDimensionsAndOrientation(initialDim);

    this.addListeners();
    this.props.fetchCountry();
  }

  componentWillUnmount() {
    this.removeListeners();
  }

  onMapLayout() {
    this.setState({ isMapReady: true });
  }

  render() {

    const countryInfo = getCountryInfo(this.props.country);
    if (!countryInfo) { // loading of data is not done yet
      if (!this.props.country.error)
        return this.renderLoading();
      else
        return this.renderLoadingError();
    } else {

      return (
        <View style={{ flex: 1 }}>
          <MapView
            style={{ flex: 1 }}
            zoomEnabled = {true}
            rotateEnabled = {true}
            scrollEnabled = {true}
            loadingEnabled={true}
            mapType = 'satellite'
            region={this.state.region}
            onLayout={this.onMapLayout.bind(this)}
            onPress={(e) => this.onMapPress.bind(this)(e)}
            onRegionChangeComplete={(region) =>
              this.onRegionChangeComplete(region)}
            >
          </MapView>
          {this.renderButtons()}
        </View>
      );
    }
  }

  renderButtons() {
    return (
      <CardSection>
        <MyButton text="help" fontSize={14} padding={5}
          backgroundColor="#fff"
          onPress={() => {}}/>
        <MyButton text="refresh" fontSize={14} padding={5}
          backgroundColor="#fff"
          onPress={() => {}} />
        <MyButton text="about" fontSize={14} padding={5}
          backgroundColor="#fff"
          onPress={() => {}}/>
      </CardSection>
    );
  }

  renderLoading() {
    return (
      <View style={{ flex: 1 }}>
        <ActivityIndicator
          size={"large"}
          color={"#00f"}
          style = {{ padding: 10, flex: 3  }}/>
        <Text style={{ flex: 2, paddingLeft: 10, paddingRight: 10,
          fontSize: 28, fontWeight: 'bold', textAlign: 'center'  }}>
          Loading...
        </Text>
      </View>
    );
  }

  renderLoadingError() {
    return (
      <View style={{ flex: 1 }}>
        <View
          style={{ flex: 1, justifyContent: 'center',
            paddingLeft: 10, paddingRight: 10 }}>
          <Text style=
            {{ fontSize: 28, fontWeight: 'bold', textAlign: 'center' }}>
            Error loading data. Please check the internet connection.
          </Text>
          <Text style=
            {{ fontSize: 28, fontWeight: 'bold', textAlign: 'center' }}>
            {' '}
          </Text>
          <Text style=
            {{ fontSize: 28, fontWeight: 'bold', textAlign: 'center' }}>
            If everything is OK, please try later.
          </Text>
        </View>
        <View>
          {this.renderButtons()}
        </View>
      </View>
    );

  }

  onMapPress(e) {
    //console.log("In onMapPress. coordinate: ", e.nativeEvent.coordinate);
    this.initRegion();
  }

  initRegion() {
    this.setState({ region: this.state.resetRegion, zoomed: false });
  }

  initData() {
    this.props.fetchCountry();
    this.setState({ region: this.state.resetRegion,
      zoomed: false, isMapReady: true });
  }

  onRegionChangeComplete(region) {
    const delta = (this.state.orientation === PORTRAIT) ?
      region.latitudeDelta : region.longitudeDelta;
    const zoomed = (delta < 2) ? true : false;

    if (zoomed !== this.state.zoomed)
      this.setState({ region: region, zoomed: zoomed });
  }

  addListeners() {
    AppState.addEventListener('change', this.handleAppStateChange);
    Dimensions.addEventListener('change', this.handleDimensionsChange);
  }

  removeListeners() {
    AppState.removeEventListener('change', this.handleAppStateChange);
    Dimensions.removeEventListener('change', this.handleDimensionsChange);
  }

  handleAppStateChange(nextAppState) {
    if (this.state.appState.match(/inactive|background/) &&
      nextAppState === ACTIVE) {
      this.initData();
    }
    this.setState({ appState: nextAppState });
  }

  handleDimensionsChange(windowAndScreen) {
    const { height, width } = windowAndScreen.window;
    this.setDimensionsAndOrientation({ height, width });
  }

  setDimensionsAndOrientation(dimensions) {
    const orientation =  (dimensions.height > dimensions.width) ?
      PORTRAIT : LANDSCAPE;

    const resetRegion = (orientation === PORTRAIT) ?
      israelRegionPortrait : israelRegionLandscape;

    this.setState({ dim: dimensions, orientation: orientation,
      resetRegion: resetRegion, region: resetRegion });
  }

  regionsEqual(region1, region2) {
    return (
      (Math.abs(region1.latitude - region2.latitude) < 0.1) &&
      (Math.abs(region1.longitude - region2.longitude) < 0.1) &&
      (Math.abs(region1.latitudeDelta - region2.latitudeDelta) < 0.1) &&
      (Math.abs(region1.longitudeDelta - region2.longitudeDelta) < 0.1)
    );
  }
}

function mapStateToProps(state) {
  return {
    country: state.country
  };
}

export default connect(mapStateToProps,
  { fetchCountry })(MapDisplay);

Starting the app in Portrait mode:

starting the app in Portrait mode

rendering in Portrait after starting the app in Landscape mode

rendering in Portrait after starting the app in Landscape mode

Some valid file paths show "File does not exist." during exp build:ios

  1. make a new project with exp init
  2. build for ios with exp build:ios
  3. On "? Do you already have a distribution certificate you'd like us to use...", enter a longish file path like the one below:
? Do you already have a distribution certificate you'd like us to use,
or do you want us to manage your certificates for you? false
? Path to P12 file: /Users/j/Documents/SomePath-mobile-app/Expo/DistributionCertificate.p12
File does not exist.

Actual: That didn't work, so copy it to the desktop and give it a dumber name:

? Path to P12 file: /Users/j/Desktop/p.p12
? Certificate P12 password:

That worked.

Expected: The longer valid file path should work.

Brent's dev tools feedback

  • Critical: node 10 bug - https://github.com/expo/universe/issues/2552
  • Critical: closing the cli appears to have no impact on the web UI - it still says I'm online and no new logs or anything show up to indicate that the server is now closed
  • Important: add interact prompt to expo-cli in the same way that it works for CRNA. Can use this to open the dev tools UI. People in the React Europe workshop had a lot of issues with using exp because of having to open new tabs.
  • Important: expo ios and expo android should start packager and launch like on CRNA. THis is another thing that caused lots of problems in the workshop.
  • Important: Change prefix from [exp] to [expo] or remove prefix entirely (every line has this prefix so it's unclear to me that it is useful, could put the date in square brackets instead).
  • Ideally, remove peer dependency warnings. If you believe they are important to surface (this has never once been helpful for me, peer dependency warnings are usually just junk in react-native ecosystem), then move them outside of the "Critical issues" tab, as they are not critical. Eg: growler-prowler inexplicably gives me Warning: 'react' peer dependency missing.
  • Pressing the link icon beside the project URL should either a) select the entire URL so you can ctrl+c it or b) copy the url to clipboard
  • Switching to tunnel connection feels slow, probably just my machine but if I switch quickly a bunch of times between each connection type then my computer slows down considerably

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.