2017年9月2日土曜日

[覚書] Reactの学習 (1) Ruby on Rails および Reactの導入

概要


  • 目的
    • ReactおよびRuby on Railsを学習する。
  • システム構成
    • フロント:React
    • サーバサイド:Ruby on Rails
    • 開発環境:macOS、Homebrew
  • 目標
    • リアクティブなWebサイトの開発
    • RESTfulなAPIサーバの開発

導入

RubyおよびRuby on Railsのインストール


Rubyのバージョン管理システム(rbenv)のインストール

Homebrewでrbenvをインストールする。
※rvmというバージョン管理システムも存在するが、rbenvの方が後発で評判が良かったので今回はrbenvを使用する。(特に強いこだわりはないです)
$ brew install rbenv
# rbenvとruby-buildがインストールされていることを確認。
$ brew list
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:
eval "$(rbenv init -)" 
# rbenv init コマンドの指示通り~/.bash_profileに1行追加する。
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
ターミナルを再起動する。
# rbenvが正しくインストールされているか確認する。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

Rubyのインストール

# 利用可能なRubyのバージョンを確認する。
$ rbenv install -l
# 任意のバージョンのRubyをインストールする。
$ rbenv install 2.4.1
# インストールできたか確認する。
$ rbenv versions
* system (set by /Users/xxx/.rbenv/version)
  2.4.1
# rbenvの再読み込み ※rehash要調査。$ rbenv rehash
# 使用するバージョンを設定する。(global)
$ rbenv global 2.4.1
# バージョンが切り替わったことを確認する。
$ rbenv versions
  system
* 2.4.1 (set by /Users/xxx/.rbenv/version)
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]

Ruby on Railsのインストール

bundlerのインストール

bundlerをインストールする。
# bundlerをインストールする。
$ gem install bundler
# bunderがインストールされたか確認する。
$ gem list --local
$ bundle -v
Bundler version 1.15.4
Ruby on Railsのインストール

Ruby on Railsプロジェクトを作成する。
$ mkdir project
$ cd project
$ bundle init
Writing new Gemfile to /path/to/project/Gemfile
# Gemfileを編集する。
$ vi Gemfile
$ cat Gemfile
source "https://rubygems.org"
gem "rails"
# railsをインストールする。
# 注意:プロジェクト内にGemをインストールする場合は、--pathオプションをつける必要がある。
# --pathオプションをつけないとシステムにインストールされる。
$ bundle install --path vendor/bundle
$ bundle exec rails new .
# Gemfileを上書きするか聞かれるので、そのまま上書きする。
Ruby on Railsの起動
# Railsを起動する。
$ bundle exec rails server
ブラウザで、http://localhost:3000にアクセスしてRailsの画面が表示されていることを確認する。

※Railsを停止する場合は、ターミナルでCtrl-Cを実行する。

参考

Reactの導入

Railsへreact-railsを導入する。

Webpackerのインストール
$ vim Gemfile
$ cat Gemfile
(snip)
# Use Webpacker
gem 'webpacker', '~> 3.0'
(snip) 
$ bundle install
webpackerでreactをインストールしようとすると、yarnが必要とエラーが出る。
$ bundle exec rails webpacker:install
Webpacker requires Yarn version >= 0.20.1. Please download and install the latest version from https://yarnpkg.com/lang/en/docs/install/

yarnをインストールする。
$ brew install yarn
$ which yarn
/usr/local/bin/yarn
$ yarn --version
0.27.5

※後で確認したら、bin/にyarnが入っていたので、webpackerがbin/yarnを参照できていなかった?→設定漏れかもしれないので要調査

webpackをインストールする。
$ bundle exec rails webpacker:install
# サンプル用のページを作成
$ bundle exec rails g controller sample index
$ bundle exec rails s

ブラウザでhttp://localhost:3000/sample/indexにアクセスして、scriptタグが複数あることを確認する。(/assetsディレクトリ)
※webpackにより、これらがまとめられることを後で確認する。


以下のように編集する。
$ vi app app/views/layouts/application.html.erb 
-    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
+    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
$ bundle exec rails s

ブラウザでhttp://localhost:3000/sample/indexにアクセスして、scriptタグがまとめられていることを確認する。(/packディレクトリ)
ブラウザの開発ツールからコンソールを開き、「Hello World from Webpacker」と表示されていることを確認する。

Reactのインストール
$ bundle exec rails webpacker:install:react
以下を追加する。
$ vi app app/views/layouts/application.html.erb 
+    <%= javascript_pack_tag 'hello_react' %>
$ bundle exec rails s
ブラウザでhttp://localhost:3000/sample/indexにアクセスして、Hello React!が表示されていることを確認する。

以上で、Ruby on RailsにReactを導入する作業の完了。

参考


GitHub


以上