facebook / create-react-app

Set up a modern web app by running one command.
https://create-react-app.dev
MIT License
102.43k stars 26.76k forks source link

v3.0.0 with Node v12/NPM 6.9.0 gives "TypeError: fsevents is not a constructor" #6891

Closed sekoyo closed 4 years ago

sekoyo commented 5 years ago

Is this a bug report?

Yes

Did you try recovering your dependencies?

Yes, tried clean install use Node v12 and NPM 6.9.0

Which terms did you search for in User Guide?

Anything about fsevents errors.

Environment

System: OS: macOS 10.14.4 CPU: x64 Intel(R) Core(TM) i7-4960HQ CPU @ 2.60GHz Binaries: Node: 12.0.0 - /usr/local/bin/node Yarn: 1.15.2 - ~/.npm-global/bin/yarn npm: 6.9.0 - ~/.npm-global/bin/npm Browsers: Chrome: 73.0.3683.103 Safari: 12.1 npmPackages: react: ^16.8.6 => 16.8.6 react-dom: ^16.8.6 => 16.8.6 react-scripts: 3.0.0 => 3.0.0 npmGlobalPackages: create-react-app: 2.1.8

Don't know why it says create-react-app: 2.1.8, if I do npm show create-react-app version it echos 3.0.0.

Steps to Reproduce

Install with NPM 6.9.0

Expected Behavior

npm start starts the server

Actual Behavior

fsevents throws:

/Users/.../node_modules/chokidar/lib/fsevents-handler.js:28
  return (new fsevents(path)).on('fsevent', callback).start();
          ^

TypeError: fsevents is not a constructor
    at createFSEventsInstance (/Users/.../Projects/fileflow/app/node_modules/chokidar/lib/fsevents-handler.js:28:11)
    at setFSEventsListener (/Users/.../Projects/fileflow/app/node_modules/chokidar/lib/fsevents-handler.js:82:16)
    at FSWatcher.FsEventsHandler._watchWithFsEvents (/Users/.../Projects/fileflow/app/node_modules/chokidar/lib/fsevents-handler.js:252:16)
    at FSWatcher.<anonymous> (/Users/.../Projects/fileflow/app/node_modules/chokidar/lib/fsevents-handler.js:386:25)
    at LOOP (fs.js:1622:14)
    at processTicksAndRejections (internal/process/task_queues.js:81:9)

Because even though chockidar depends on fsevents 1.2.8, it doesn't get installed, possibly due to chockidar declaring it as an optional dependency: https://github.com/paulmillr/chokidar/blob/master/package.json#L24

Screenshot 2019-04-24 at 22 20 03

Instead fsevents v2 gets installed which has a different API which exports a plain object (new keyword breaks on it).

⚠️ Works using yarn. (and older NPM versions as it worked on Node v11 I was using yesterday)

Reproducible Demo

Do create-create-app using NPM 6.9.0 and try to run it.

jasonfb commented 5 years ago

some people on the reactiflux Discord channel are recommending downgrading to Node 11 until the issue is mitigated.

djayri commented 5 years ago

This worked for me:

npm audit fix --force

thanks mate. this worked for me

erickacevedor commented 5 years ago

You need to install the yarn before creating your app

sudo npm i -g yarn npx create-react-app my-app cd my-app npm start

It have worked for me. ;)

This indeed works. I struggle making my first react app to work at first, but eventually installing yarn (and use it after that) make it work, it really do the trick ✨

sekoyo commented 5 years ago

I no longer get this issue, tested with Node 12.7 and 12.9 using either NPM or Yarn. Thinking of closing this soon as it seems to have been resolved.

barunprasad commented 5 years ago
rm -rf node_modules
rm -f yarn.lock 
yarn

Solve the issue

This worked for me. I had Node version: 12.8.0 on a mac