reactjs/react-rails

EROFS when running rails g react:install

harrison-broadbent opened this issue · 2 comments

Steps to reproduce

Following the installation instructions from the README leads to the following error when running rails g react:install -

rails g react:install
/Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:406:in `mkdir': Read-only file system @ dir_s_mkdir - /components (Errno::EROFS)
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:406:in `fu_mkdir'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:384:in `block (2 levels) in mkdir_p'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:382:in `reverse_each'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:382:in `block in mkdir_p'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:374:in `each'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/3.2.0/fileutils.rb:374:in `mkdir_p'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/actions/empty_directory.rb:52:in `block in invoke!'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/actions/empty_directory.rb:117:in `invoke_with_conflict_check'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/actions/empty_directory.rb:50:in `invoke!'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/actions.rb:93:in `action'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/actions/empty_directory.rb:14:in `empty_directory'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/react-rails-2.6.0/lib/generators/react/install_generator.rb:26:in `create_directory'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:134:in `block in invoke_all'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:134:in `each'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:134:in `map'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:134:in `invoke_all'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/group.rb:232:in `dispatch'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/base.rb:485:in `start'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/railties-7.0.4.2/lib/rails/generators.rb:263:in `invoke'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/railties-7.0.4.2/lib/rails/commands/generate/generate_command.rb:26:in `perform'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/railties-7.0.4.2/lib/rails/command/base.rb:87:in `perform'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/railties-7.0.4.2/lib/rails/command.rb:48:in `invoke'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/railties-7.0.4.2/lib/rails/commands.rb:18:in `<main>'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/harrisonbroadbent/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from bin/rails:4:in `<main>'

I was able to fix this error manually by copying the generator files into my local lib folder and adjusting InstallGenerator -

module React
  module Generators
    ....

      # Make an empty `components/` directory in the right place:
      def create_directory
        # EDITS HERE
        components_dir = Pathname.new(javascript_dir).parent.to_s
        # Remove conditional and directly set components_dir
        empty_directory File.join(components_dir, 'components')
        unless options[:skip_git]
          create_file File.join(components_dir, 'components/.keep')
        end
      end
...

whats going on here?

--- system info ---
Rails version: 7.0.4.2
Ruby version: 3.2.0

Thanks for reporting.
Please check: #1226

In the coming release, this issue will be fixed.

ah thank you, I didn't see that issue. my bad