I'm running into this error on master with a project created with npm run create-react-app ../test
jest-haste-map: Watchman crawl failed. Retrying once with node crawler.
Error: Watchman error: resolve_projpath: none of the files listed in global config root_files are present in path/Users/vjeux/random/test
or any of its parent directories. Make sure watchman is running for this project. See https://facebook.github.io/watchman/docs/troubleshooting.html.
I came up with the "Painless unit testing" sentence. It's now a reality :)
None of these words make any sense to our users: jest-haste-map watchman crawl node crawler resolve_projpath config root_files
. They shouldn’t be in our messages.
If we recommend installing Watchman we should explain why and what it gives you (faster watching)? The message should not include any references to configs and jargon.
Also the warning links to https://facebook.github.io/watchman/docs/troubleshooting.html which says nothing about how to install Watchman.
https://facebook.github.io/watchman/docs/install.html suggests to use brew
or macports
which is not at all beginner-friendly.
I think we need a flag to completely disable this warning/suggestion because it’s optional, and instructions are unfortunately confusing. We can still put instructions on “how to speed up watching” in our Howto.
cc @cpojer
@vjeux Did you previously install RN? @cpojer told me this warning only shows up if:
I'm a Facebook engineer so watchman is installed on my machine by default ;)
Ah that explains it. 😄
I confirmed that this error is only thrown when using Facebook equipment so I think this isn't actionable and we can close it. I expect FB engineers to figure out how to use watchman, however we might want to improve the error message in Jest to make sure people understand it is no reason to panic.
how to repro a non fb-environment:
create ~/watchman
and put {}
into the file then run:
watchman shutdown-server; WATCHMAN_CONFIG_FILE=~/watchman watchman --foreground --logfile=/dev/stdout --no-save-state --statefile=/dev/null
then run jest --no-cache
and you shouldn't see the error.
Thanks for checking.
For what it's worth, I got this error as well, so it can happen on non-fb equipment. It was because I'd tried jest in the past and ended up with watchman installed on my machine. At least I think that's how I ended up with it. Uninstalling it made the error go away. It would be nice to not ever show this message though. It was cryptic.
I think we should close this one. I understand the concern but I updated the error message to say to create a .watchmanconfig
file in Jest 15. If you have watchman installed manually, I feel like it is ok for Jest to try to use it and tell you how to get rid of the message (git init, hg init or touch .watchmanconfig).
Would something like "Watchman is installed but not running. Using standard watcher instead." be less frightening and filled with words I don't understand? Maybe this is all kind of edge case, but I thought it was worth a mention.
The problem is that we have to surface watchman's error and we can't hide how cryptic it is. Maybe create an issue on watchman's bug tracker about improving their error messages?
I'm a new user to react-native, just got it installed. The documentation seems to be missing the react-native start step and then I noticed the same watchman warning as in this thread (I'm not a facebook engineer :trollface: ) so I think the docs are still lacking a section about how to improve performance of the watchers in general. My 2c.
I came across this issue this morning when running Jest on a different machine. I had no idea I had watchman installed. Looking in my usr/local/bin I found out I installed it back in April 2005 along with React-Native when I was experimenting. I will post an issue with watchman in regards to their error message in hopes they will make it less cryptic.
I found out I installed it back in April 2005 along with React-Native when I was experimenting
Are you a time traveler? 😄
Don't tell anyone! Though 2015 sounds better.
This fixed for me.
npm r -g watchman
brew update && brew upgrade
brew install watchman
Hi @cpojer ,
I tried your instructions:
create ~/watchman and put {} into the file then run:
watchman shutdown-server; WATCHMAN_CONFIG_FILE=~/watchman watchman --foreground --logfile=/dev/stdout --no-save-state --statefile=/dev/nullthen run jest --no-cache and you shouldn't see the error
And it does not work, btw, 'WATCHMAN_CONFIG_FILE=~/watchman' does not look like a command.
On the other hand, my situation is:
jest-haste-map: Watchman crawl failed. Retrying once with node crawler.
Usually this happens when watchman isn't running. Create an empty.watchmanco nfig
file in your project's root folder or initialize a git or hg repository in
your project.
Error: Watchman was not found in PATH. See https://facebook.github.io/watchma
n/docs/install.html for installation instructions
Watchman: Watchman was not found in PATH. See https://facebook.github.io/watch
man/docs/install.html for installation instructions
ERROR Watchman was not found in PATH. See https://facebook.github.io/watchman
/docs/install.html for installation instructions
{"code":"ENOENT","errno":"ENOENT","syscall":"spawn watchman","path":"watchman","
spawnargs":["--no-pretty","get-sockname"]}
Error: Watchman was not found in PATH. See https://facebook.github.io/watchman/
docs/install.html for installation instructions
at exports._errnoException (util.js:1018:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
I would really appreciate if you can help me out. Thank you.
My error is slightly different:
jest-haste-map: Watchman crawl failed. Retrying once with node crawler.
Usually this happens when watchman isn't running. Create an empty .watchmanconfig
file in your project's root folder or initialize a git or hg repository in your project.
Error: Watchman error: fileData.mtime_ms.toNumber is not a function. Make sure watchman is running for this project. See https://facebook.github.io/watchman/docs/troubleshooting.html.
Loading dependency graph, done.
Any ideas on what this means and/or how I can fix it?
@shireen I am having the exact same error
@shireen @valetarton I'm running into this issue now. Did ya'll figure out a solution or workaround?
My specific error is Error: Watchman error: query failed: synchronization failed: Unknown error.
I'm on Windows 7. Thanks
it fixed in my solution:
$ brew uninstall watchman
$ brew install watchman
Warning: watchman 4.9.0 is already installed, it's just not linked.
$ brew unlink watchman
$ brew link --overwrite watchman
re init react-native project,it will work.
Still having this issue. The solutions presented above do not work for me. I tried Vikram's solution and lvlinha's solution. I still see the same error message. I also have created a .watchman file in my project root as instructed by the message, to no avail.
UPDATE: Fixed when I did some module upgrades. Not sure what fixed it, but I upgraded to npm ^5.8.0, react ^16.3.0, and expo SDK v26.
UPDATE: Nope, it's still happening, but it depends on if I run react-native run-ios as root or not. If I run the simulator as root, I don't get the watchman error, but the packager behaves strangely... very labored. If I don't run it as root, I get the error but the packager runs smoothly and the simulator loads much more quickly. I guess the upgrades didn't help.
UPDATE: Fixed by recursively changing the owner of .git to my non-root user.
After reading all comments and implementing them again getting same error
expo: 27.0.1
react: 16.3.1
react-native: 0.55.2
watchman shutdown-server
worked for me.
i simply copied the code from my project, created a new project and pasted there...
and it works:)
UPDATE:
@theapache64 ,
I guess after i ran "npm audit" and resolved some vulnerabilities after that watchman stopped working in that project and when i created new project, copied the code from previous project and run the packager, it worked (:
@theapache64 worked for me too.
Most helpful comment
None of these words make any sense to our users:
jest-haste-map watchman crawl node crawler resolve_projpath config root_files
. They shouldn’t be in our messages.If we recommend installing Watchman we should explain why and what it gives you (faster watching)? The message should not include any references to configs and jargon.