“webpack binstubs not found.” on Heroku - node.js

I’ve spun up a new rails project with the following command: rails new -d postgresql --skip-spring --skip-test --webpack=react
Following this, I created my database, added <%= javascript_pack_tag 'hello_react' %> to application.html.erb and generated a homepage.
I then ran:
rails s # tab 1
bin/webpack-dev-server # tab 2
This all works fine and I can see “Hello World!” at localhost:3000.
However, when I try to push to Heroku, the build fails at webpack binstubs not found.. I can confirm that bin/webpack does exist, doing rails webpack:install:react does nothing.
I’ve followed the instructions at webpacker/deployment.md at master · rails/webpacker · GitHub to no avail, still getting the exact same error. I’ve even tried setting compile: true in config/webpacker.yml, in the production section. Nothing.
This seems odd as this is a new project with nothing special in it; I’m confused as to why it cannot seem to find the declaration of bin/webpack. It is not in my .gitignore.
Any help would be great.
Cheers.
Full build log:
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
USE_YARN_CACHE=true
NODE_ENV=production
NODE_MODULES_CACHE=true
NODE_VERBOSE=false
-----> Installing binaries
engines.node (package.json): unspecified
engines.npm (package.json): unspecified (use default)
engines.yarn (package.json): unspecified (use default)
Resolving node version 12.x...
Downloading and installing node 12.19.1...
Using default npm version: 6.14.8
Resolving yarn version 1.22.x...
Downloading and installing yarn (1.22.10)
Installed yarn 1.22.10
-----> Installing dependencies
Installing node modules (yarn.lock)
yarn install v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents#2.1.3: The platform "linux" is incompatible with this module.
info "fsevents#2.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents#1.2.13: The platform "linux" is incompatible with this module.
info "fsevents#1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > #babel/preset-react#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-display-name#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-development#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-self#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-source#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-pure-annotations#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx > #babel/plugin-syntax-jsx#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning " > webpack-dev-server#3.11.0" has unmet peer dependency "webpack#^4.0.0 || ^5.0.0".
warning "webpack-dev-server > webpack-dev-middleware#3.7.2" has unmet peer dependency "webpack#^4.0.0".
[4/4] Building fresh packages...
Done in 29.74s.
-----> Build
-----> Pruning devDependencies
yarn install v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents#2.1.3: The platform "linux" is incompatible with this module.
info "fsevents#2.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents#1.2.13: The platform "linux" is incompatible with this module.
info "fsevents#1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > #babel/preset-react#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-display-name#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-development#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-self#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-source#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-pure-annotations#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx > #babel/plugin-syntax-jsx#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning " > webpack-dev-server#3.11.0" has unmet peer dependency "webpack#^4.0.0 || ^5.0.0".
warning "webpack-dev-server > webpack-dev-middleware#3.7.2" has unmet peer dependency "webpack#^4.0.0".
[4/4] Building fresh packages...
warning Ignored scripts due to flag.
Done in 5.82s.
-----> Caching build
- yarn cache
-----> Build succeeded!
! This app may not specify any way to start a node process
https://devcenter.heroku.com/articles/nodejs-support#default-web-process-type
! Unmet dependencies don't fail yarn install but may cause runtime issues
https://github.com/npm/npm/issues/7494
-----> Ruby app detected
-----> Installing bundler 2.1.4
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.7.2
-----> Installing dependencies using bundler 2.1.4
Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching rake 13.0.1
Installing rake 13.0.1
Fetching concurrent-ruby 1.1.7
Fetching thread_safe 0.3.6
Fetching minitest 5.14.2
Installing thread_safe 0.3.6
Installing minitest 5.14.2
Installing concurrent-ruby 1.1.7
Fetching zeitwerk 2.4.1
Installing zeitwerk 2.4.1
Fetching builder 3.2.4
Fetching erubi 1.10.0
Installing builder 3.2.4
Installing erubi 1.10.0
Fetching mini_portile2 2.4.0
Fetching crass 1.0.6
Installing mini_portile2 2.4.0
Installing crass 1.0.6
Fetching rack 2.2.3
Installing rack 2.2.3
Fetching nio4r 2.5.4
Installing nio4r 2.5.4 with native extensions
Fetching websocket-extensions 0.1.5
Installing websocket-extensions 0.1.5
Fetching mimemagic 0.3.5
Fetching mini_mime 1.0.2
Installing mini_mime 1.0.2
Installing mimemagic 0.3.5
Fetching msgpack 1.3.3
Installing msgpack 1.3.3 with native extensions
Using bundler 2.1.4
Fetching ffi 1.13.1
Installing ffi 1.13.1 with native extensions
Fetching method_source 1.0.0
Installing method_source 1.0.0
Fetching pg 1.2.3
Installing pg 1.2.3 with native extensions
Fetching thor 1.0.1
Installing thor 1.0.1
Fetching tilt 2.0.10
Installing tilt 2.0.10
Fetching turbolinks-source 5.2.0
Installing turbolinks-source 5.2.0
Fetching tzinfo 1.2.8
Installing tzinfo 1.2.8
Fetching nokogiri 1.10.10
Installing nokogiri 1.10.10 with native extensions
Fetching i18n 1.8.5
Installing i18n 1.8.5
Fetching rack-test 1.1.0
Installing rack-test 1.1.0
Fetching rack-proxy 0.6.5
Installing rack-proxy 0.6.5
Fetching sprockets 4.0.2
Installing sprockets 4.0.2
Fetching websocket-driver 0.7.3
Installing websocket-driver 0.7.3 with native extensions
Fetching mail 2.7.1
Installing mail 2.7.1
Fetching marcel 0.3.3
Installing marcel 0.3.3
Fetching puma 4.3.6
Installing puma 4.3.6 with native extensions
Fetching bootsnap 1.5.1
Installing bootsnap 1.5.1 with native extensions
Fetching turbolinks 5.2.1
Installing turbolinks 5.2.1
Fetching sassc 2.4.0
Installing sassc 2.4.0 with native extensions
Fetching activesupport 6.0.3.4
Installing activesupport 6.0.3.4
Fetching loofah 2.7.0
Installing loofah 2.7.0
Fetching rails-dom-testing 2.0.3
Installing rails-dom-testing 2.0.3
Fetching globalid 0.4.2
Installing globalid 0.4.2
Fetching activemodel 6.0.3.4
Installing activemodel 6.0.3.4
Fetching jbuilder 2.10.1
Installing jbuilder 2.10.1
Fetching rails-html-sanitizer 1.3.0
Installing rails-html-sanitizer 1.3.0
Fetching activejob 6.0.3.4
Fetching activerecord 6.0.3.4
Installing activejob 6.0.3.4
Installing activerecord 6.0.3.4
Fetching actionview 6.0.3.4
Installing actionview 6.0.3.4
Fetching actionpack 6.0.3.4
Installing actionpack 6.0.3.4
Fetching actioncable 6.0.3.4
Installing actioncable 6.0.3.4
Fetching actionmailer 6.0.3.4
Installing actionmailer 6.0.3.4
Fetching railties 6.0.3.4
Fetching sprockets-rails 3.2.2
Installing sprockets-rails 3.2.2
Installing railties 6.0.3.4
Fetching activestorage 6.0.3.4
Installing activestorage 6.0.3.4
Fetching actionmailbox 6.0.3.4
Installing actionmailbox 6.0.3.4
Fetching actiontext 6.0.3.4
Installing actiontext 6.0.3.4
Fetching rails 6.0.3.4
Fetching webpacker 4.3.0
Installing rails 6.0.3.4
Installing webpacker 4.3.0
Fetching sassc-rails 2.1.2
Installing sassc-rails 2.1.2
Fetching sass-rails 6.0.0
Installing sass-rails 6.0.0
Bundle complete! 12 Gemfile dependencies, 57 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
Post-install message from i18n:
HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.
If you are upgrading your Rails application from an older version of Rails:
Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.
If you are starting a NEW Rails application, you can ignore this notice.
For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0
Bundle completed (208.33s)
Cleaning up the bundler cache.
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
yarn install v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents#2.1.3: The platform "linux" is incompatible with this module.
info "fsevents#2.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents#1.2.13: The platform "linux" is incompatible with this module.
info "fsevents#1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > #babel/preset-react#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-display-name#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-development#7.12.7" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-self#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-source#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-pure-annotations#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx > #babel/plugin-syntax-jsx#7.12.1" has unmet peer dependency "#babel/core#^7.0.0-0".
warning " > webpack-dev-server#3.11.0" has unmet peer dependency "webpack#^4.0.0 || ^5.0.0".
warning "webpack-dev-server > webpack-dev-middleware#3.7.2" has unmet peer dependency "webpack#^4.0.0".
[4/4] Building fresh packages...
Done in 29.50s.
I, [2020-11-25T12:02:13.452090 #3686] INFO -- : Writing /tmp/build_6728f1b1/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js
I, [2020-11-25T12:02:13.452388 #3686] INFO -- : Writing /tmp/build_6728f1b1/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js.gz
I, [2020-11-25T12:02:13.452661 #3686] INFO -- : Writing /tmp/build_6728f1b1/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css
I, [2020-11-25T12:02:13.452831 #3686] INFO -- : Writing /tmp/build_6728f1b1/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css.gz
I, [2020-11-25T12:02:13.453156 #3686] INFO -- : Writing /tmp/build_6728f1b1/public/assets/home-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css
I, [2020-11-25T12:02:13.453335 #3686] INFO -- : Writing /tmp/build_6728f1b1/public/assets/home-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css.gz
webpack binstubs not found.
Have you run rails webpacker:install ?
Make sure the bin directory or binstubs are not included in .gitignore
Exiting!
!
! Precompiling assets failed.
!
! Push rejected, failed to compile Ruby app.
! Push failed

SOLVED
Turns out bin/ is ignored by default in Rails.
Oddly enough, I still can't find the code which ignores bin/ for git; it doesn't look like it's in the main .gitignore
However, if you run
git add -f bin/webpack && git push heroku master # or main
everything should build.

Related

Aborting installation. yarnpkg add --exact react react-dom react-scripts cra-template --cwd /home/ficho/workspace/storybook-tutorial has failed

I am not able to create a new react app.
So far it worked great, but today I had to install yarn and since I would get this error, when I tried to create a new react app:
➜ workspace npx create-react-app storybook-tutorial
Creating a new React app in /home/ficho/workspace/storybook-tutorial.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...
yarn add v1.22.10
[1/4] Resolving packages...
warning react-scripts > babel-eslint#10.1.0: babel-eslint is now #babel/eslint-parser. This package will no longer receive updates.
warning react-scripts > workbox-webpack-plugin > workbox-build > #hapi/joi#15.1.1: Switch to 'npm install joi'
warning react-scripts > workbox-webpack-plugin > workbox-build > rollup-plugin-babel#4.4.0: This package has been deprecated and is no
longer maintained. Please use #rollup/plugin-babel.
warning react-scripts > jest > #jest/core > jest-config > jest-environment-jsdom > jsdom > request-promise-native#1.0.9:
request-promise-native has been deprecated because it extends the now
deprecated request package, see
https://github.com/request/request/issues/3142
warning react-scripts > jest > #jest/core > jest-config > jest-environment-jsdom > jsdom > request#2.88.2: request has been
deprecated, see https://github.com/request/request/issues/3142
[2/4] Fetching packages...
info fsevents#1.2.12: The platform "linux" is incompatible with this module.
info "fsevents#1.2.12" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents#2.3.1: The platform "linux" is incompatible with this module.
info "fsevents#2.3.1" is an optional dependency and failed compatibility check. Excluding it from installation.
error postcss#8.2.4: The engine "node" is incompatible with this module. Expected version "^10 || ^12 || >=14". Got "13.8.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Aborting installation.
yarnpkg add --exact react react-dom react-scripts cra-template --cwd /home/ficho/workspace/storybook-tutorial has failed.
Deleting generated file... package.json
Deleting generated file... yarn.lock
Deleting storybook-tutorial/ from /home/ficho/workspace
Done.
I use Ubuntu 18.4.
I tried clearing cache: yarn cache clear and updating npm npm install -g npm#latest
Upgrade your node.js would solve this problem.

How to install Gulp.js v4 globally with Yarn?

I installed Gulp.js globally with Yarn:
$ yarn global add gulp --no-bin-links
yarn global v1.17.3
[1/4] Resolving packages...
warning gulp > glob-watcher > anymatch > micromatch > snapdragon > source-map-resolve > urix#0.1.0: Please see https://github.com/lydell/urix#deprecated
warning gulp > glob-watcher > anymatch > micromatch > snapdragon > source-map-resolve > resolve-url#0.2.1: https://github.com/lydell/resolve-url#deprecated
[2/4] Fetching packages...
info fsevents#1.2.12: The platform "linux" is incompatible with this module.
info "fsevents#1.2.12" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "gulp#4.0.2" with binaries:
- gulp
Done in 5.76s.
$ yarn global add gulp-cli --no-bin-links
yarn global v1.17.3
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents#1.2.12: The platform "linux" is incompatible with this module.
info "fsevents#1.2.12" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "gulp-cli#2.2.0" with binaries:
- gulp
Done in 1.60s.
(I'm using the --no-bin-links parameter to avoid this error: error An unexpected error occurred: "EPROTO: protocol error, symlink '../../../semver/bin/semver' -> '/path/to/project/public/components/accord/node_modules/.bin/semver'".)
The yarn global list provides the expected output:
$ yarn global list
yarn global v1.17.3
info "gulp#4.0.2" has binaries:
- gulp
info "gulp-cli#2.2.0" has binaries:
- gulp
Done in 0.53s.
But when I now execute gulp, old versions (Gulp 3.9.1 and Gulp CLI 2.2.0 are used:
$ gulp -v
CLI version: 2.2.0
Local version: 3.9.1
What is wrong here and how to install the required Gulp version globally correctly with Yarn and make this version be used?

React with Webpacker is failing to load

Now that I have resolved my issue with Ruby, the React part with webpacker is failing to load probably as below.
yarn install v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents#1.2.11: The platform "win32" is incompatible with this module.
info "fsevents#1.2.11" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > #babel/preset-react#7.8.3" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-display-name#7.8.3" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx#7.8.3" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-self#7.8.3" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx-source#7.8.3" has unmet peer dependency "#babel/core#^7.0.0-0".
warning "#babel/preset-react > #babel/plugin-transform-react-jsx > #babel/plugin-syntax-jsx#7.8.3" has unmet peer dependency "#babel/core#^7.0.0-0".
warning " > webpack-dev-server#3.10.1" has unmet peer dependency "webpack#^4.0.0 || ^5.0.0".
warning "webpack-dev-server > webpack-dev-middleware#3.7.2" has unmet peer dependency "webpack#^4.0.0".
[4/4] Building fresh packages...
Done in 71.58s.
Since I found this question while looking for the same problem, I will post my findings here as well.
Some background knowledge:
It are peer dependencies that are required here. Peer dependencies are dependencies that are not being installed when you run yarn or npm install. If you what to know more about peer dependencies and how the NPM package system work, read this article.
Node is using semantic versioning and this is explained here.
Now to this specific problem:
After reading the following issues on github:
Unmet babel core peer dependency
unmet peer dependency warnings using yarn
babel-core#^7.0.0-0 should be babel-core#^7.0.0-bridge.0
For me, I came to the conclusion I can ignore them since it seems to be a yarn bug not finding the correct package I have installed on my system. Never the less in case, I get problems at some point I need to do a closer deep dive into this. If this happens I will update the answer in the future.

How to fix: "error fsevents#2.0.7: The platform "linux" is incompatible with this module."

I want to deploy my website to Heroku but I get the next error:
error fsevents#2.0.7: The platform "linux" is incompatible with this module.
error Found incompatible module.
I've already tried upgrading yarn, node but it didn't help. I use macOS Mojave v 10.14.5 and I cannot understand why is linux here.
remote: -----> Installing binaries
remote: engines.node (package.json): 10.15.3
remote: engines.npm (package.json): unspecified (use default)
remote: engines.yarn (package.json): unspecified (use default)
remote:
remote: Resolving node version 10.15.3...
remote: Downloading and installing node 10.15.3...
remote: Using default npm version: 6.4.1
remote: Resolving yarn version 1.x...
remote: Downloading and installing yarn (1.17.3)...
remote: Installed yarn 1.17.3
remote:
remote: -----> Installing dependencies
remote: Installing node modules (yarn.lock)
remote: yarn install v1.17.3
remote: [1/4] Resolving packages...
remote: [2/4] Fetching packages...
error fsevents#2.0.7: The platform "linux" is incompatible with this module.
remote: error Found incompatible module.
I removed lines
fsevents#^1.2.7, fsevents#^2.0.6:
version "2.0.7"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a"
integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==
and
optionalDependencies:
fsevents "^2.0.6"
from yarn.lock. Next I removed
"fsevents": "2.0.7",
from resolutions key in package.json
Finally on yarn install I can see
info fsevents#2.0.7: The platform "linux" is incompatible with this module.
info "fsevents#2.0.7" is an optional dependency and failed compatibility check. Excluding it from installation.
and
success Saved lockfile.
You do not need this module because of this is only for MacOS
Native access to MacOS FSEvents in Node.js
https://www.npmjs.com/package/fsevents
yarn --ignore-platform
This will fix the issue. As the name suggests it'll ignore the platform(Mac/Linux) and install those dependencies.
I'm getting the error now, but Heroku excludes fsevents and results in a successful deploy.
info fsevents#2.1.3: The platform "linux" is incompatible with this module.
remote: info "fsevents#2.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
remote: info fsevents#1.2.13: The platform "linux" is incompatible with this module.
remote: info "fsevents#1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
https://my-app.herokuapp.com/ deployed to Heroku.
I didn't modify yarn.lock or any other files. I ended up at the post because I was curious about the error and now I know it's for macOS only. In other words ignore the error and leave yarn.lock alone.

I can't install any new npm packages on an expo project

I have been working on a react native project and I used expo-cli for that. After I had a working alpha version, I generated an android version and published it.
Now I am back working on it, and I couldn't add any packages and I think somehow I made it worse, by removing node_modules and running the command yarn install I got this error :
I couldn't post the stack trace because it is too long, but I created a gist containing the full stack trace : link
yarn install
yarn install v1.15.2
warning ../../../package.json: No license field
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
info #expo/traveling-fastlane-linux#1.9.3: The platform "darwin" is incompatible with this module.
info "#expo/traveling-fastlane-linux#1.9.3" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-darwin-ia32#2.2.8: The CPU architecture "x64" is incompatible with this module.
info "#expo/ngrok-bin-darwin-ia32#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-freebsd-ia32#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-freebsd-ia32#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-freebsd-ia32#2.2.8: The CPU architecture "x64" is incompatible with this module.
info #expo/ngrok-bin-freebsd-x64#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-freebsd-x64#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-linux-arm#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-linux-arm#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-linux-arm#2.2.8: The CPU architecture "x64" is incompatible with this module.
info #expo/ngrok-bin-linux-arm64#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-linux-arm64#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-linux-arm64#2.2.8: The CPU architecture "x64" is incompatible with this module.
info #expo/ngrok-bin-linux-ia32#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-linux-ia32#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-linux-ia32#2.2.8: The CPU architecture "x64" is incompatible with this module.
info #expo/ngrok-bin-linux-x64#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-linux-x64#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-sunos-x64#2.2.8: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-sunos-x64#2.2.8" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-win32-ia32#2.2.8-beta.1: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-win32-ia32#2.2.8-beta.1" is an optional dependency and failed compatibility check. Excluding it from installation.
info #expo/ngrok-bin-win32-ia32#2.2.8-beta.1: The CPU architecture "x64" is incompatible with this module.
info #expo/ngrok-bin-win32-x64#2.2.8-beta.1: The platform "darwin" is incompatible with this module.
info "#expo/ngrok-bin-win32-x64#2.2.8-beta.1" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗 Linking dependencies...
warning " > #rhysforyou/react-native-carousel#0.1.1" has incorrect peer dependency "react#>=16.6".
warning "expo > expo-background-fetch#1.0.0" has unmet peer dependency "expo-task-manager-interface#~1.0.0".
warning "expo > expo-google-sign-in#2.0.0" has incorrect peer dependency "react-native#^0.55.4".
warning "expo > expo-location#2.0.1" has unmet peer dependency "expo-task-manager-interface#~1.0.0".
warning "expo > react-native-reanimated#1.0.0-alpha.11" has incorrect peer dependency "react#16.0.0-alpha.6".
warning "expo > react-native-reanimated#1.0.0-alpha.11" has incorrect peer dependency "react-native#^0.44.1".
warning "expo > expo-asset > url-loader#1.1.2" has unmet peer dependency "webpack#^3.0.0 || ^4.0.0".
warning "firebase > #firebase/database#0.3.17" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/firestore#1.1.3" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/functions#0.4.3" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/messaging#0.3.16" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/storage#0.2.12" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/auth > #firebase/auth-types#0.5.5" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/auth > #firebase/auth-types#0.5.5" has unmet peer dependency "#firebase/util#0.x".
warning "firebase > #firebase/database > #firebase/database-types#0.3.8" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/firestore > #firebase/firestore-types#1.1.1" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/functions > #firebase/messaging-types#0.2.8" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/storage > #firebase/storage-types#0.2.8" has unmet peer dependency "#firebase/app-types#0.x".
warning "firebase > #firebase/storage > #firebase/storage-types#0.2.8" has unmet peer dependency "#firebase/util#0.x".
warning " > react-native-maps#0.23.0" has unmet peer dependency "prop-types#^15.0 || ^16.0".
warning " > react-native-paper#2.15.0" has unmet peer dependency "react-native-vector-icons#*".
warning "react-native-paper > create-react-context#0.2.3" has unmet peer dependency "prop-types#^15.0.0".
warning "react-navigation > #react-navigation/native#3.3.0" has unmet peer dependency "react-native-gesture-handler#*".
warning "react-navigation > react-navigation-drawer#1.3.0" has unmet peer dependency "react-native-gesture-handler#^1.0.12".
warning "react-navigation > react-navigation-drawer#1.3.0" has unmet peer dependency "react-native-screens#^1.0.0 || ^1.0.0-alpha".
warning "react-navigation > react-navigation-stack#1.1.1" has unmet peer dependency "react-native-gesture-handler#^1.0.0".
warning "react-navigation > react-navigation-stack#1.1.1" has unmet peer dependency "react-native-screens#^1.0.0 || ^1.0.0-alpha".
warning "react-navigation > react-navigation-tabs#1.0.2" has unmet peer dependency "react-native-screens#^1.0.0 || ^1.0.0-alpha".
warning "react-navigation > #react-navigation/core > create-react-context#0.2.2" has unmet peer dependency "prop-types#^15.0.0".
[4/4] 🔨 Building fresh packages...
[1/5] ⠂ fsevents
[2/5] ⠂ iltorb
[-/5] ⠂ waiting...
[4/5] ⠂ grpc
....
If you take a look at the gist, you would think it is grp problem... the actual problem was node#12.
After I downgraded to node 11, I got everything back to normal.
(master) node -v 11.12

Resources