Hi there,
I’m encoutring an error with Expo xde.
everything was working ok until today. When ’ create a new project and try to start it, an error is swhown with the following description:
"Error: fsevents unavailable (this watcher can only be used on Darwin) ".
I couldn’t find any solution for that.
However all my ald projects are starting normally.
HI, I’m on Mac. Yes i’m getting this error in the XDE logs.
hier is the complete error message:
Starting React Native packager…
9:27:58 AM
Scanning 789 folders for symlinks in /Users/Miladi/ReactNative/trans/node_modules (7ms)
9:27:59 AM
9:28:00 AM
Project opened! You can now use the “Share” or “Device” buttons to view your project.
9:28:01 AM
Error: fsevents unavailable (this watcher can only be used on Darwin)
uname:
Darwin YamadaKaitos-Mac.local 17.2.0 Darwin Kernel Version 17.2.0: Mon Sep 18 15:44:59 PDT 2017; root:xnu-4570.20.55~19/RELEASE_X86_64 x86_64
OS X 10.13.1 Public Beta
uname -a returns:
Darwin MacBookRetina.local 15.6.0 Darwin Kernel Version 15.6.0: Sun Jun 4 21:43:07 PDT 2017; root:xnu-3248.70.3~1/RELEASE_X86_64 x86_64
Did you still use Expo XDE after installing the dependencies with yarn ? Because I’ve deleted the node_modules directory, then I’ve used yarn to install them again. But still Expo throw this error
Building JavaScript bundle
20:53:25
Error: `fsevents` unavailable (this watcher can only be used on Darwin)
at new FSEventsWatcher (/Users/bondot_e/Workspace/lilo-app/node_modules/sane/src/fsevents_watcher.js:41:11)
at createWatcher (/Users/bondot_e/Workspace/lilo-app/node_modules/metro-bundler/node_modules/jest-haste-map/build/index.js:590:23)
at Array.map (native)
at HasteMap._watch (/Users/bondot_e/Workspace/lilo-app/node_modules/metro-bundler/node_modules/jest-haste-map/build/index.js:737:25)
at _buildPromise._buildFileMap.then.then.hasteMap (/Users/bondot_e/Workspace/lilo-app/node_modules/metro-bundler/node_modules/jest-haste-map/build/index.js:269:21)
at process._tickCallback (internal/process/next_tick.js:103:7)
Hi,
using the terminal resolve the issue for me too, but how to publish an app to your expo account with the terminal?
However i want to be able to use expo ui, but no chance since the error still exist with expo XDE.
To publish your app from the terminal, use the command exp publish. See the exp project on Github for more info.
As far as using XDE, I don’t have any answers there. It seems XDE wants to use the most recent version of npm, which doesn’t work with Expo at the moment.
XDE and exp both invoke the React Native packager server, which uses the code under node_modules. I recommend reinstalling your node_modules to ensure that fsevents is built if you’re on macOS. You can do this with: rm -fr node_modules && yarn. You also can use npm install (4.x and 5.4.x should both work if you’re not using create-react-native-app) instead of yarn. Then click Restart in XDE and try again.
None of the above suggestions worked, however, I did discover that this error can occur and become troublsome to fix when using nvm. The problem occurs when the system version of node is different from the shell version set up with nvm. When this happens actions to fix in one version of node don’t fix the version of node that starts with expo ide (the default system version).
Two things need to happen:
First, make sure that every new shell starts with a consistent version of node.js by putting “nvm use 8.7.0” or whatever version you are currently using. That way all shells and expo start with the same version. Type nvm ls’ to make sure that the ‘system’ alias is the version specified.
Second, fix the problem in the correct version of node.js (make sure the right version of node is being used when fixing things with ‘nvm ls’ or if you use another package manager, make sure the system one is the one you are fixing (in a new shell, check node --version)
Apply these fixes, one of which is probably the issue: (a variation on: How to clear the Expo and React Native packager caches (Metro, Watchman, Haste)) One or more of the below statements may not be a problem, but this represents the sledge hammer solution. XDE users should follow the npm line of fixes, others can use yarn.
Stop the XDE/exp
Install a version of npm below 5 (as of October 2017). I read it’s unstable… You can experiment with later versions once you get to a stable install. Yarn works great no matter what from what I can tell, but npm is used by expo XDE and it needs to be a stable version for the version of node it boots into. If you create a new project with the XDE, you will have problems if you haven’t updated npm, you will then have to rely on yarn from the command line nonsense once the project is created by the XDE.
nvm use 8.7.0
npm install npm@4.6.1 -g
Install the latest watchman, something like: (if you have the latest, then the watchman fixes can probably be skipped)
Hi @hazephase, while we are not completely sure about the root cause of this bug, we noticed that the equivalent command to start up your project in terminal will work instead of using the XDE.
To do this, type exp start in the directory where your project is.