Rails+Reactにbrowserifyを導入する
react-rails
でReactを導入してるRailsアプリにbrowserifyを導入します!
JSのモダンな環境に関してはめちゃくちゃ素人なので調べた過程で読んでよかった!な記事を順番になるようにメモしておきます。
最初に読みたい記事
最初に読んでおいたらいいなと思った良記事。
browserifyとは
browserifyがどういうものか先ずわからないくらいのフロント音痴なのでまずはそこから調べてこう。
browserifyの公式サイトはこちら。
Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
そして他にもいくつか参考になったサイトから引用を上げさせてもらいます。
Browserifyの使い方について調べてみた - yutaponのブログ
Browserifyをざっくり説明すると、
ブラウザ上でもNode.js用モジュールを使えるようにする ブラウザでもrequire()を使ったモジュール管理を使えるようにする という特徴があるようです。
browser(ブラウザ)+ fy(〜する)という単語からもNode.jsをブラウザ化するってニュアンスでしょうか。
なるほどなるほど。
browserify をはじめてみる - Please Sleep
CommonJS のモジュールの仕組み、つまり Node.js の require をブラウザ上でも使えるようにするもの、ということでいいみたい。Readme を読む限りは、npm にあるモジュールをブラウザ上にもっていくために作られ始めたような印象をうけるが、ちまたのエントリーをみていると AMD に代わりに CommonJS でフロントエンドの依存関係の管理をする (RequireJS ではなく、Node.js 感覚で require 関数をフロントエンドで使う) ためのツールとしても使っていいようだ。
以下のCookpadのtech blogの記事が非常に参考になります。
モダンJavaScript開発環境 on Rails - クックパッド開発者ブログ
ふむふむ。自分はRailsはrailsから外れていくほどつらみが増えていくと認識しているので同じく最後のbrowserify-rails
を使う方針がベターかなと思いました。
フロントエンド開発の3ステップ(npmことはじめ) - Qiita
今までは、javascriptのライブラリを使う際、読み込みのためのhtmlタグを書く必要がありましたが、 browserifyを使うと、javascript上で直接ライブラリを参照することができます。 普通の言語なら当たり前の機能ですが、ブラウザ上では今までできなかった、というわけです。 browserifyを使うと、node_modules内のライブラリを、直接参照することができます。 また、ライブラリ同士の依存も自動で解決されます。 ということは npm installでライブラリを持ってきて、何も考えずにrequireで読み込める ということを意味します。
browserifyでES6使えるようにする
ということでまずはES6を使えるようにしてみます。
以下で紹介されてるサンプルアプリを参考にさせていただきました。
GitHub - hokaccha/browserify-rails-example
このcommitの差分が非常にわかりやすい。。。ありがたい。。。
browserify-rails setting · hokaccha/browserify-rails-example@4587691 · GitHub
ES6についてはとりあえずこれよんどく
Hello, ES6 ~これから迎えるJSのミライ~ - @yoshiko_pg
browserifyとReact Components
babelifyできたら次はReact Componentsを動かせるようにします。以下の記事を参考に設定しました。