我是Ruby on Rails的新手,也许这是一个非常小的问题,但我在网上搜索了一个解决方案,所有的都至少有2-3年的历史,他们描述了同样的事情。我看的所有教程和视频,都说要创建一个新的应用程序与webpack的React,使用:
rails new app_name --webpack=react -d=postgresql -T
每个人都说,这个命令将创建一个包文件夹下我的app/javascript文件夹如下:
app/javascript:
└── packs:
└── application.js
└── hello_react.jsx
实际上这些都没有发生。我没有包文件夹。相反,我有以下内容:
app/javascript:
└── controllers:
└── application.js
└── hello_controller.js
└── index.js
那么,我做错了什么?为什么我没有包文件夹?我如何集成React和Ruby on Rails?我的环境是- Linux Manjaro XFCE 21.2.6,ruby 3.0.3,rails 7.0.2.4。
2条答案
按热度按时间smdncfj31#
在Rails 7中,webpacker不再是默认选项,it has been replaced不再是import maps的默认选项,所以这就是为什么任何旧的rails/react教程在默认情况下都不适用于这个新版本的原因。
如果您正在启动一个新项目并希望使用React框架,我的建议是只需搜索up-to-date Rails/React tutorials,因为已经有很多这样的框架了。
如果这是一个升级到Rails 7的项目,并且您不想摆脱
webpack
,您可以考虑迁移到jsbundling-rails
或开始使用shakapacker
,从现在起,它似乎是webpacker
的正式继承者。在
jsbundling-rails
项目中,there's a comparison of both gems可以帮助您决定,最后,当您最终决定使用哪一个时,webpacker
->jsbundling-rails
guide和webpacker
->shakapacker
guide可以帮助您进行转换。yb3bgrhw2#
问题出在您的命令上。下面是生成一个新的Rails项目以在Rails 7中使用webpack的正确命令:
然后可以使用以下命令添加react.js:
您可以在https://github.com/rails/jsbundling-rails找到文档