I have a freshly created Rails 5.2.0 app, using Ruby 2.5.1 and Node 10.0.0. Below is the output from rails webpacker:install

Since this was my first time installing webpacker, I thought things were fine. When I attempted to run ./bin/webpack-dev-server I recieved this:

It wasn't until after this, that I went back and paid closer attention to installation output to notice a dependency error on node versions.
After I downgraded Node to version 9.11.1, I re-ran the install task successfully and was able to spin up the webpack dev server.
Can you check what of the include modules is depending on upath?
Ok, looks like webpack depends on upath and this haven't been updated: https://github.com/anodynos/upath/issues/14
Looks like the --ignore-engines flag can be used as workaround meanwhile (yarn install --ignore-engines)
Let's keep this open until upstream issue is fixed
Got this same problem. Here's the full log of the error.
Workspace $ rails new ndt-nordvest --database=postgresql -T --webpack
create
create README.md
create Rakefile
create .ruby-version
create config.ru
create .gitignore
create Gemfile
run git init from "."
Initialized empty Git repository in /Users/Mayor/Workspace/ndt-nordvest/.git/
create package.json
create app
create app/assets/config/manifest.js
create app/assets/javascripts/application.js
create app/assets/javascripts/cable.js
create app/assets/stylesheets/application.css
create app/channels/application_cable/channel.rb
create app/channels/application_cable/connection.rb
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/jobs/application_job.rb
create app/mailers/application_mailer.rb
create app/models/application_record.rb
create app/views/layouts/application.html.erb
create app/views/layouts/mailer.html.erb
create app/views/layouts/mailer.text.erb
create app/assets/images/.keep
create app/assets/javascripts/channels
create app/assets/javascripts/channels/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create bin/setup
create bin/update
create bin/yarn
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/cable.yml
create config/puma.rb
create config/spring.rb
create config/storage.yml
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/application_controller_renderer.rb
create config/initializers/assets.rb
create config/initializers/backtrace_silencers.rb
create config/initializers/content_security_policy.rb
create config/initializers/cookies_serializer.rb
create config/initializers/cors.rb
create config/initializers/filter_parameter_logging.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/new_framework_defaults_5_2.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/master.key
append .gitignore
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/404.html
create public/422.html
create public/500.html
create public/apple-touch-icon-precomposed.png
create public/apple-touch-icon.png
create public/favicon.ico
create public/robots.txt
create tmp
create tmp/.keep
create tmp/cache
create tmp/cache/assets
create vendor
create vendor/.keep
create storage
create storage/.keep
create tmp/storage
create tmp/storage/.keep
remove config/initializers/cors.rb
remove config/initializers/new_framework_defaults_5_2.rb
run bundle install
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 gem metadata from https://rubygems.org/.
Resolving dependencies....
Using rake 12.3.1
Using concurrent-ruby 1.0.5
Using i18n 1.0.1
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 5.2.0
Using builder 3.2.3
Using erubi 1.7.1
Using mini_portile2 2.3.0
Using nokogiri 1.8.2
Using rails-dom-testing 2.0.3
Using crass 1.0.4
Using loofah 2.2.2
Using rails-html-sanitizer 1.0.4
Using actionview 5.2.0
Using rack 2.0.5
Using rack-test 1.0.0
Using actionpack 5.2.0
Using nio4r 2.3.0
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using actioncable 5.2.0
Using globalid 0.4.1
Using activejob 5.2.0
Using mini_mime 1.0.0
Using mail 2.7.0
Using actionmailer 5.2.0
Using activemodel 5.2.0
Using arel 9.0.0
Using activerecord 5.2.0
Using mimemagic 0.3.2
Using marcel 0.3.2
Using activestorage 5.2.0
Using bindex 0.5.0
Using msgpack 1.2.4
Using bootsnap 1.3.0
Using bundler 1.16.1
Using byebug 10.0.2
Using coffee-script-source 1.12.2
Using execjs 2.7.0
Using coffee-script 2.4.1
Using method_source 0.9.0
Using thor 0.20.0
Using railties 5.2.0
Using coffee-rails 4.2.2
Using ffi 1.9.23
Using multi_json 1.13.1
Using jbuilder 2.7.0
Using rb-fsevent 0.10.3
Using rb-inotify 0.9.10
Using ruby_dep 1.5.0
Using listen 3.1.5
Using pg 1.0.0
Using puma 3.11.4
Using rack-proxy 0.6.4
Using sprockets 3.7.1
Using sprockets-rails 3.2.1
Using rails 5.2.0
Using sass-listen 4.0.0
Using sass 3.5.6
Using tilt 2.0.8
Using sass-rails 5.0.7
Using spring 2.0.2
Using spring-watcher-listen 2.0.1
Using turbolinks-source 5.1.0
Using turbolinks 5.1.1
Using uglifier 4.1.10
Using web-console 3.6.1
Using webpacker 3.4.3
Bundle complete! 16 Gemfile dependencies, 70 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
rails webpacker:install
create config/webpacker.yml
Copying webpack core config
create config/webpack
create config/webpack/development.js
create config/webpack/environment.js
create config/webpack/production.js
create config/webpack/test.js
Copying .postcssrc.yml to app root directory
create .postcssrc.yml
Copying .babelrc to app root directory
create .babelrc
Creating JavaScript app source directory
create app/javascript
create app/javascript/packs/application.js
apply /Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/install/binstubs.rb
Copying binstubs
exist bin
create bin/webpack
create bin/webpack-dev-server
Adding configurations
append .gitignore
Installing all JavaScript dependencies
run yarn add @rails/[email protected] --tilde from "."
yarn add v1.6.0
(node:22686) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
info No lockfile found.
[1/4] ๐ Resolving packages...
[2/4] ๐ Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version ">=4 <=9".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Installing dev server for live reloading
run yarn add --dev [email protected] from "."
yarn add v1.6.0
(node:22688) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
info No lockfile found.
[1/4] ๐ Resolving packages...
[2/4] ๐ Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version ">=4 <=9".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
You need to allow webpack-dev-server host as allowed origin for connect-src.
This can be done in Rails 5.2+ for development environment in the CSP initializer
config/initializers/content_security_policy.rb with a snippet like this:
p.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development?
Webpacker successfully installed ๐ ๐ฐ
run bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted
Workspace $ cd ndt-nordvest/
ndt-nordvest $ code .
ndt-nordvest $ bundle exec bin/webpack-dev-server
bundler: failed to load command: bin/webpack-dev-server (bin/webpack-dev-server)
Errno::ENOENT: No such file or directory - /Users/Mayor/Workspace/ndt-nordvest/node_modules/.bin/webpack-dev-server
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:47:in `exec'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:47:in `block in execute_cmd'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:46:in `chdir'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:46:in `execute_cmd'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:11:in `run'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/runner.rb:6:in `run'
bin/webpack-dev-server:15:in `<top (required)>'
ndt-nordvest $
After trying out with the said work around yarn install --ignore-engines still did not work.
ndt-nordvest $ yarn install --ignore-engines
yarn install v1.6.0
(node:22832) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
info No lockfile found.
[1/4] ๐ Resolving packages...
[2/4] ๐ Fetching packages...
[3/4] ๐ Linking dependencies...
[4/4] ๐ Building fresh packages...
info Lockfile not saved, no dependencies.
โจ Done in 0.07s.
ndt-nordvest $ bundle exec bin/webpack-dev-server
bundler: failed to load command: bin/webpack-dev-server (bin/webpack-dev-server)
Errno::ENOENT: No such file or directory - /Users/Mayor/Workspace/ndt-nordvest/node_modules/.bin/webpack-dev-server
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:47:in `exec'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:47:in `block in execute_cmd'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:46:in `chdir'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:46:in `execute_cmd'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/dev_server_runner.rb:11:in `run'
/Users/Mayor/.rvm/gems/ruby-2.5.1/gems/webpacker-3.4.3/lib/webpacker/runner.rb:6:in `run'
bin/webpack-dev-server:15:in `<top (required)>'
ndt-nordvest $
Tried both with webpacker 3.4.3 and 4.0.x.pre.pre2 but got the same result.
Having similar issue when trying to install vuejs/stimulus
package.json only contains:
{
"name": "little_expanse_manager",
"private": true,
"dependencies": {
"stimulus": "^1.0.1"
}
}
This is caused by upath (Webpack dependency) is not compatible with Node 10 (pending PR here: https://github.com/anodynos/upath/pull/15).
You need to either stick to Node 9 for now, or install Webpacker manually (yarn add --ignore-engines @rails/[email protected] [email protected]).
You can not just run yarn install --ignore-engines as advised by the default yarn error message as the add commands failed, so your package.json is empty.
You can also set ignore-engines globally, but please remember to unset it once this is fixed: yarn config set ignore-engines true
To use Node 9, you can specify your engines as
"engines": {
"node": ">=6.0.0 <10",
"yarn": ">=1.6.0"
}
I'm wondering if this should be the default engines definition in package.json generated by this gem. Having Node defined as >=6.0.0 is very loose and we're running the risk that this situation happens all over again with the next major Node version.
Hello everyone - I fixed upath & published it - thanks & sorry for the delay! You can close the issue, once you check its working.
Thanks @anodynos!
Most helpful comment
Ok, looks like webpack depends on upath and this haven't been updated: https://github.com/anodynos/upath/issues/14
Looks like the
--ignore-enginesflag can be used as workaround meanwhile (yarn install --ignore-engines)Let's keep this open until upstream issue is fixed