Skip to content

Commit dc7ef85

Browse files
committed
Add comprehensive debug output to understand generator method execution
1 parent 73ca8cf commit dc7ef85

File tree

1 file changed

+55
-33
lines changed

1 file changed

+55
-33
lines changed

lib/generators/react_on_rails/base_generator.rb

Lines changed: 55 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -200,44 +200,66 @@ def add_base_gems_to_gemfile
200200
end
201201

202202
def add_js_dependencies
203-
major_minor_patch_only = /\A\d+\.\d+\.\d+\z/
204-
if ReactOnRails::VERSION.match?(major_minor_patch_only)
205-
package_json.manager.add(["react-on-rails@#{ReactOnRails::VERSION}"])
206-
else
207-
# otherwise add latest
208-
puts "Adding the latest react-on-rails NPM module. Double check this is correct in package.json"
209-
package_json.manager.add(["react-on-rails"])
210-
end
203+
puts "=== DEBUG: add_js_dependencies method called ==="
204+
205+
begin
206+
major_minor_patch_only = /\A\d+\.\d+\.\d+\z/
207+
if ReactOnRails::VERSION.match?(major_minor_patch_only)
208+
puts "Adding react-on-rails@#{ReactOnRails::VERSION}"
209+
package_json.manager.add(["react-on-rails@#{ReactOnRails::VERSION}"])
210+
else
211+
# otherwise add latest
212+
puts "Adding the latest react-on-rails NPM module. Double check this is correct in package.json"
213+
package_json.manager.add(["react-on-rails"])
214+
end
211215

212-
puts "Adding React dependencies"
213-
package_json.manager.add([
214-
"react",
215-
"react-dom",
216-
"@babel/preset-react",
217-
"prop-types",
218-
"babel-plugin-transform-react-remove-prop-types",
219-
"babel-plugin-macros"
220-
])
221-
222-
puts "Adding CSS handlers"
223-
224-
package_json.manager.add(%w[
225-
css-loader
226-
css-minimizer-webpack-plugin
227-
mini-css-extract-plugin
228-
style-loader
229-
])
230-
231-
puts "Adding dev dependencies"
232-
package_json.manager.add([
233-
"@pmmmwh/react-refresh-webpack-plugin",
234-
"react-refresh"
235-
], type: :dev)
216+
puts "Adding React dependencies"
217+
package_json.manager.add([
218+
"react",
219+
"react-dom",
220+
"@babel/preset-react",
221+
"prop-types",
222+
"babel-plugin-transform-react-remove-prop-types",
223+
"babel-plugin-macros"
224+
])
225+
226+
puts "Adding CSS handlers"
227+
package_json.manager.add(%w[
228+
css-loader
229+
css-minimizer-webpack-plugin
230+
mini-css-extract-plugin
231+
style-loader
232+
])
233+
234+
puts "Adding dev dependencies"
235+
package_json.manager.add([
236+
"@pmmmwh/react-refresh-webpack-plugin",
237+
"react-refresh"
238+
], type: :dev)
239+
puts "=== DEBUG: add_js_dependencies completed successfully ==="
240+
rescue => e
241+
puts "=== ERROR in add_js_dependencies: #{e.message} ==="
242+
puts "=== ERROR backtrace: #{e.backtrace.first(3).join(', ')} ==="
243+
raise
244+
end
236245
end
237246

238247
def install_js_dependencies
239248
puts "Installing JavaScript dependencies"
240-
run "yarn install"
249+
250+
# Detect which package manager to use
251+
if File.exist?(File.join(destination_root, "yarn.lock"))
252+
run "yarn install"
253+
elsif File.exist?(File.join(destination_root, "pnpm-lock.yaml"))
254+
run "pnpm install"
255+
elsif File.exist?(File.join(destination_root, "package-lock.json"))
256+
run "npm install"
257+
elsif File.exist?(File.join(destination_root, "package.json"))
258+
# Default to npm if no lock file exists but package.json does
259+
run "npm install"
260+
else
261+
puts "No package.json found, skipping JavaScript dependency installation"
262+
end
241263
rescue => e
242264
puts "Error installing JavaScript dependencies: #{e.message}"
243265
raise

0 commit comments

Comments
 (0)