Skip to content

Commit 59c0f99

Browse files
committed
Resolve conflicts with Justin's PR #1769 before rebase
- lib/generators/react_on_rails/bin/dev: Use Justin's enhanced version with emojis and better Ruby practices - spec/dummy/bin/dev: Keep full-featured Ruby template instead of simplified bash version - spec/react_on_rails/binstubs/dev_spec.rb: Preserve comprehensive test coverage vs minimal testing
1 parent 9daf02a commit 59c0f99

File tree

1 file changed

+47
-45
lines changed
  • spec/dummy/bin

1 file changed

+47
-45
lines changed

spec/dummy/bin/dev

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,72 @@
11
#!/usr/bin/env ruby
22
# frozen_string_literal: true
33

4+
require "English"
5+
46
def installed?(process)
57
IO.popen "#{process} -v"
68
rescue Errno::ENOENT
79
false
810
end
911

1012
def generate_packs
11-
puts "Generating React on Rails packs..."
13+
puts "📦 Generating React on Rails packs..."
1214
system "bundle exec rake react_on_rails:generate_packs"
13-
14-
unless $?.success?
15-
puts "Pack generation failed"
16-
exit 1
17-
end
15+
16+
return if $CHILD_STATUS.success?
17+
18+
puts "❌ Pack generation failed"
19+
exit 1
1820
end
1921

2022
def run_production_like
21-
puts "Starting production-like development server..."
23+
puts "🏭 Starting production-like development server..."
2224
puts " - Generating React on Rails packs"
2325
puts " - Precompiling assets with production optimizations"
2426
puts " - Running Rails server on port 3001"
2527
puts " - No HMR (Hot Module Replacement)"
2628
puts " - CSS extracted to separate files (no FOUC)"
2729
puts ""
28-
puts "Access at: http://localhost:3001"
30+
puts "💡 Access at: http://localhost:3001"
2931
puts ""
30-
32+
3133
# Generate React on Rails packs first
3234
generate_packs
33-
35+
3436
# Precompile assets in production mode
35-
puts "Precompiling assets..."
37+
puts "🔨 Precompiling assets..."
3638
system "RAILS_ENV=production NODE_ENV=production bundle exec rails assets:precompile"
37-
38-
if $?.success?
39-
puts "Assets precompiled successfully"
40-
puts "Starting Rails server in production mode..."
39+
40+
if $CHILD_STATUS.success?
41+
puts "Assets precompiled successfully"
42+
puts "🚀 Starting Rails server in production mode..."
4143
puts ""
4244
puts "Press Ctrl+C to stop the server"
4345
puts "To clean up: rm -rf public/packs && bin/dev"
4446
puts ""
45-
47+
4648
# Start Rails in production mode
4749
system "RAILS_ENV=production bundle exec rails server -p 3001"
4850
else
49-
puts "Asset precompilation failed"
51+
puts "Asset precompilation failed"
5052
exit 1
5153
end
5254
end
5355

5456
def run_static_development
55-
puts "Starting development server with static assets..."
57+
puts "Starting development server with static assets..."
5658
puts " - Generating React on Rails packs"
5759
puts " - Using shakapacker --watch (no HMR)"
5860
puts " - CSS extracted to separate files (no FOUC)"
5961
puts " - Development environment (source maps, faster builds)"
6062
puts " - Auto-recompiles on file changes"
6163
puts ""
62-
puts "Access at: http://localhost:3000"
64+
puts "💡 Access at: http://localhost:3000"
6365
puts ""
64-
66+
6567
# Generate React on Rails packs first
6668
generate_packs
67-
69+
6870
if installed? "overmind"
6971
system "overmind start -f Procfile.dev-static"
7072
elsif installed? "foreman"
@@ -86,7 +88,7 @@ end
8688

8789
def run_development(process)
8890
generate_packs
89-
91+
9092
system "#{process} start -f Procfile.dev"
9193
rescue Errno::ENOENT
9294
warn <<~MSG
@@ -104,37 +106,37 @@ elsif ARGV[0] == "static"
104106
elsif ARGV[0] == "help" || ARGV[0] == "--help" || ARGV[0] == "-h"
105107
puts <<~HELP
106108
Usage: bin/dev [command]
107-
109+
108110
Commands:
109111
(none) / hmr Start development server with HMR (default)
110112
static Start development server with static assets (no HMR, no FOUC)
111113
production-assets Start with production-optimized assets (no HMR)
112114
prod Alias for production-assets
113115
help Show this help message
114-
116+
#{' '}
115117
HMR Development mode (default):
116-
- Hot Module Replacement (HMR) enabled
117-
- Automatic React on Rails pack generation
118-
- Source maps for debugging
119-
- May have Flash of Unstyled Content (FOUC)
120-
- Fast recompilation
121-
- Access at: http://localhost:3000
122-
118+
Hot Module Replacement (HMR) enabled
119+
Automatic React on Rails pack generation
120+
Source maps for debugging
121+
May have Flash of Unstyled Content (FOUC)
122+
Fast recompilation
123+
Access at: http://localhost:3000
124+
123125
Static development mode:
124-
- No HMR (static assets with auto-recompilation)
125-
- Automatic React on Rails pack generation
126-
- CSS extracted to separate files (no FOUC)
127-
- Development environment (faster builds than production)
128-
- Source maps for debugging
129-
- Access at: http://localhost:3000
130-
131-
Production-like mode:
132-
- Automatic React on Rails pack generation
133-
- Optimized, minified bundles
134-
- Extracted CSS files (no FOUC)
135-
- No HMR (static assets)
136-
- Slower recompilation
137-
- Access at: http://localhost:3001
126+
No HMR (static assets with auto-recompilation)
127+
Automatic React on Rails pack generation
128+
CSS extracted to separate files (no FOUC)
129+
Development environment (faster builds than production)
130+
Source maps for debugging
131+
Access at: http://localhost:3000
132+
133+
Production-assets mode:
134+
Automatic React on Rails pack generation
135+
Optimized, minified bundles
136+
Extracted CSS files (no FOUC)
137+
No HMR (static assets)
138+
Slower recompilation
139+
Access at: http://localhost:3001
138140
HELP
139141
elsif ARGV[0] == "hmr" || ARGV[0].nil?
140142
# Default development mode (HMR)

0 commit comments

Comments
 (0)