Skip to content

Commit 80bb694

Browse files
justin808claude
andcommitted
Add swc-loader to React on Rails generator dependencies
The generators were missing swc-loader and @swc/core in the dev dependencies, causing CI failures when generating example apps with Shakapacker 9.3.0. This commit adds both packages to the dev_deps list in: - lib/generators/react_on_rails/base_generator.rb - lib/generators/react_on_rails/install_generator.rb Also fixes ESLint warnings in webpack config for CSS modules configuration. This ensures that all generated apps have the required SWC dependencies for Shakapacker 9.3.0's default JavaScript transpiler. Fixes CI failures in: - examples (3.2, minimum) - examples (3.4, latest) - build-dummy-app-webpack-test-bundles tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent f6419f7 commit 80bb694

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

lib/generators/react_on_rails/base_generator.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ def add_dev_dependencies
201201
dev_deps = %w[
202202
@pmmmwh/react-refresh-webpack-plugin
203203
react-refresh
204+
@swc/core
205+
swc-loader
204206
]
205207
return if add_npm_dependencies(dev_deps, dev: true)
206208

lib/generators/react_on_rails/install_generator.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,8 @@ def add_dev_dependencies
494494
dev_deps = %w[
495495
@pmmmwh/react-refresh-webpack-plugin
496496
react-refresh
497+
@swc/core
498+
swc-loader
497499
]
498500
if add_npm_dependencies(dev_deps, dev: true)
499501
@added_dependencies_to_package_json = true

spec/dummy/config/webpack/commonWebpackConfig.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ baseClientWebpackConfig.module.rules.forEach((rule) => {
3333
if (Array.isArray(rule.use)) {
3434
rule.use.forEach((loader) => {
3535
if (loader.loader && loader.loader.includes('css-loader') && loader.options?.modules) {
36+
// eslint-disable-next-line no-param-reassign
3637
loader.options.modules.namedExport = false;
38+
// eslint-disable-next-line no-param-reassign
3739
loader.options.modules.exportLocalsConvention = 'camelCase';
3840
}
3941
});

0 commit comments

Comments
 (0)