はじめに
皆さんStimulus
を使っていますか?
React
やVue
を使う程学べていないけど、jQuery
は使いたくないって人におすすめのフレームワークです!
JaveScript
の簡単なDOM操作ができる人なら学習コストはほぼゼロで使えます!
更に、Webpacker
を導入しているRails
ならコマンド一発でインストールできるのも魅力的です。
rails webpacker:install:stimulus
上記コマンドでインストールして公式サイトでサクッと勉強しながら皆さん良いStimulusライフを!
、、、としたかったのですが、インストールの際にエラーが発生して上手く動かなかったので修正点を備忘録として残しておきます。
前提
技術など | バージョン等 |
---|---|
ruby | 2.7.4 |
Rails | 6.1.4 |
執筆時点の日時は2021/11/27です。
調査結果
修正点とか言ってますが、ただのバージョンの問題でした。
詳しくは分かってないのですが、Rails7
にStimulus
は標準で組み込まれるっぽいです(現在の筆者のRails
のバージョンは6)。
それに先駆けてStimulus
が色々バージョンアップしたっぽいので、Rails6
ではそのままだと使えませんでした。(間違いがありましたら諸先輩方ご指摘お願いします🙇♂️)
修正内容
まずは、Stimulus
のバージョンを直しましょう(すでにStimulus
のバージョン3.0.0をインストールしてしまった前提です。)
{
"name": "myapp",
"private": true,
"dependencies": {
"@popperjs/core": "^2.10.1",
"@rails/activestorage": "^6.0.0",
"@rails/ujs": "^6.0.0",
"@rails/webpacker": "5.4.3",
// 中略
- "stimulus": "^3.0.0",
+ "stimulus": "^2.0.0",
"turbolinks": "^5.2.0",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12"
},
"version": "0.1.0",
"devDependencies": {
"webpack-dev-server": "^3"
}
}
上記のように3.0.0
を2.0.0
に修正します。
その上で、
yarn install
で、再インストールして下さい。
不安な人は、yarn.lock
内を検索して、"@stimulus/core@^2.0.0":
となっているか確認してみてください。
次に、app/javascript/packs/application.js
に追記をします。
import Rails from "@rails/ujs";
import Turbolinks from "turbolinks";
import * as ActiveStorage from "@rails/activestorage";
// 中略
+ import "controllers";
上記のように1行だけ追加して下さい(もしかしたら自動で記述されているかもしれません)
最後に、app/javascript/controllers/
ディレクトリにhello_controller.js
を作成、公式サイトのTOPにある部分とかを打ち込んで動くか確認してみて下さい。
公式サイトTOPと同じ動きをしてくれたら成功です!
終わりに
今回がQiita初投稿ですので、温かい目で見守ってくださるとありがたいです。
また、ミスやこうすると読みやすい等ご指摘がありましたらぜひコメントの方宜しくお願いします🙇♂️
繰り返しになりますが、React
やVue
を使うほどではない簡単な動きだけならStiumulus
の方が導入・開発スピードは早いと思いますので、ぜひ使ってみて下さい!!