エラーを乗り越えろ!! くじけないRuby初心者のRuby On Rails + Vue.js 環境構築(Ruby 2.6.4, Rails 6.0.1)
Ruby On Rails + Vue.js で何かを作りたいと思って環境構築し始めたところ、次々とエラーが出てきました。環境を構築したいだけなのにエラーで前に進めないのはとても辛いです。構築手順についてはわかりやすい先輩型のQiitaがあったので、今回はそれに沿って構築した際に、詰まった箇所とその対応策を備忘録としてまとめます。
参考文献に沿って構築 + 詰まった箇所
1. まずはこの記事に沿って実行
Ruby初学者のRuby On Rails 環境構築【Mac】
❶Homebrewはインストール済みだったので、アップデート
❷rbenvもインストール済みだったので、Homebrewでアップデート
❸一応cat ~/.bash_profile
でrbenvのパスが通っているか確認
❹せっかくなので今回は本家サイトで安定版と書かれていたRuby2.6.5をインストール...しようと思ったら、listになかったので、2.6.4をインストールした
❺Bundlerはインストール済みだったので、アップデート
❻MySQLはHomebrewでインストール&起動
❼作業フォルダを作成して、作成したフォルダの中へ移動し、Rubyのバージョンを2.6.4に指定
❽bundle initでGemfileを作成、vimでGemfileを開き、# gem "rails"のコメント解除して保存
❾Railsをインストールしてバージョン確認
➓Railsアプリを作成(blogという名前で今回はプロジェクトを作成)
①Railsアプリ起動
② http://localhost:3000/ にアクセスして、下記画面が出たら、Ruby On Railsの環境構築はOK!(いったんCtrl+Cでサーバの起動は止めておく)
1.の詰まった箇所
・1-❸で、Qiitaだと、export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"
だったけど、
私の環境はexport PATH="$HOME/.rbenv/bin:$PATH"
となっていた
: は区切りの意味。$PATHはPATHの設定に追加しますよって意味(つけないと、PATHの上書きになってしまうので、それまでの設定がなくなっちゃう)。
なのでQiitaの方は下記2つのパスが通っていることになる。
~/.rbenv/shims
/usr/local/bin
でも私の方は
$HOME/.rbenv/bin
しかパスが通ってないことなのかな、と思って、
echo $PATH
して見たら、~/.rbenv/shims
、/usr/local/bin
共にパス通っていたので、良しとする。
(cf. Pathを通すとは、環境変数とは)
・1-➓で、bootsnapのLoadErrorが出てしまった
cannot load such file -- bootsnap/setup (LoadError)
→ Gemfileにgem 'bootsnap', require: false
を追記し、bundle install
し、もう一回プロジェクト作成コマンドを叩く(上書き聞かれたら全部Y)。ここで上書きするので、プロジェクト配下のconfig/boot.rbにrequire 'bootsnap/setup'
の追記は自分でしなくて大丈夫
(cf. bootsnapのせいでRails5.2とかが動かない人へ)
・1-➓で、webpackerがないためエラーになった
rails aborted!
Don't know how to build task 'webpacker:install' (See the list of available tasks with `rails --tasks`)
→ Gemfileにgem 'webpacker', github: "rails/webpacker"
を追記し、bundle install
し、もう一回プロジェクト作成コマンドを叩く(上書き聞かれたら全部Y)
(cf. Rails6 開発時につまづきそうな webpacker, yarn 関係のエラーと解決方法)
・1-➓で、yarnがないため警告がでる
Yarn not installed. Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/
→ brew install yarn
を実行してyarnをインストールし、もう一回プロジェクト作成コマンドを叩く(上書き聞かれたら全部Y)
・1-➓で、listenのエラーが出る
rails aborted!
LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
→ ここはだいぶ詰まった。けど、プロジェクト配下のGemfileのdevelopmentの箇所に書かれているlistenの記述をコメントアウトし、それをまるっと、一個上の階層のGemfileに追記(gem 'listen', '>= 3.0.5', '< 3.2'
)して、bundle install --with development test
を実行して、もう一回プロジェクト作成コマンドを叩く(上書き聞かれたら全部Y)
(cf. LoadError: Could not load the 'listen' gem (Rails 5))
・1-➓で、yarnをアップデートせよと出た
error Found 1 errors.
========================================
Your Yarn packages are out of date!
Please run `yarn install --check-files` to update.
========================================
To disable this check, please change `check_yarn_integrity`
to `false` in your webpacker config file (config/webpacker.yml).
yarn check v1.19.2
info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.
→ アップデートしても治らなかったので、プロジェクト配下のconfig/webpacker.ymlに記述されていた、check_yarn_integrityをfalseにした(2箇所あって、片方はfalseにすでになっていたのでそれはそのままにしてもう一個のtrueの方をfalseにした)ら、エラーが消えた
(cf. yarnが原因でdocker-compose runが実行できないときの対処法)
・1-①で、railsコマンド使えないけど、といった感じのエラーがでる
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your "rails" command.
→ バージョン確認bundle exec rails -v
の時のように、bundle exec rails
を使って、プロジェクトblog
に入ってbundle exec rails server
を実行したら無事起動した!
HOGEGE-no-Air-2:pra_ruby HOGE$ cd blog/
HOGEGE-no-Air-2:blog HOGE$ bundle exec rails server
=> Booting Puma
=> Rails 6.0.1 application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.1 (ruby 2.6.4-p104), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:3000
* Listening on tcp://[::1]:3000
Use Ctrl-C to stop
(cf. bundle exec rails serverで起動時にエラーとなってしまう。。。)
2. 次にVue.jsを下記記事に沿って追加
【Rails6】10分でRails + Vue + Vuetifyの環境を構築する
❶--webpack=vueを指定してrails newでプロジェクトを作成する部分は、1.で作成したプロジェクトblog
を使いたかったので、プロジェクト配下で、bundle exec rails webpacker:install:vue
を実行し、既存のプロジェクトにVue.jsをインストール
(cf. webpackerを使ってRuby on Rails 6.0とVue.jsを連携する方法(フロントエンド編))
❷プロジェクト配下でbundle exec rails s
を実行し、サーバーを起動(bundle exec rails server
でもok)、確認終わったらCtrl+Cで止めておく
❸プロジェクト配下でbundle exec rails db:create
を実行し、DBを作成
❹プロジェクト配下でbundle exec rails g controller home index
を実行し、コントローラーを作成
❹プロジェクト配下のconfig/routes.rb
を編集してルーティングを設定
❺プロジェクト配下にできていたapp/views/home/index.html.erb
を編集して、再びプロジェクト配下でbundle exec rails s
を実行し、サーバーを起動
❻ http://localhost:3000 に接続して以下の画面が表示されればVueの環境構築は完了。確認終わったらCtrl+Cでサーバを止めておく
2.の詰まった箇所
(※特にどこもひっからなかった。強いてあげれば、1.同様、rails
コマンドは全て、bundle exec rails
に置き換えてプロジェクトは以下で実行した部分)
3. 次に2.と同じ記事を参考におまけでVuetifyを追加
❶yarn add vuetify
をそのままプロジェクト配下で投げ、yarnを使ってvuetifyをインストール
❷プロジェクト配下のapp/javascript/packs/hello_vue.js
を編集し、vuetifyを読み込ませる
❷プロジェクト配下のapp/javascript/app.vue
を編集し、Vuetifyで表示させるファイルを作成
❹プロジェクト配下でbundle exec rails s
を実行し、サーバーを起動
❻ http://localhost:3000 に接続して以下の画面が表示されればVuetifyの環境構築も完了
3.の詰まった箇所
(※特にどこもひっからなかった。強いてあげれば、1.2.同様、rails
コマンドは全て、bundle exec rails
に置き換えてプロジェクトは以下で実行した部分)
4. せっかく環境が整ったので、下記記事を参考にログイン画面にしてみる
❶Vuetifyの追加 yarn add vuetify
❷下記2ファイル(hello_vue.js,app.vue)の編集
❸http://localhost:3000 に接続して確認
app/javascript/packs/hello_vue.js
import Vue from 'vue'
import Vuetify from "vuetify";
import "vuetify/dist/vuetify.min.css";
import App from '../app.vue'
import 'material-design-icons-iconfont/dist/material-design-icons.css'
import '@mdi/font/css/materialdesignicons.css'
Vue.use(Vuetify,{
iconfont:'md'||'mdi'
});
const vuetify = new Vuetify();
document.addEventListener('DOMContentLoaded', () => {
const app = new Vue({
vuetify,
render: h => h(App)
}).$mount()
document.body.appendChild(app.$el)
console.log(app)
})
app/javascript/app.vue
<template>
<v-app id="app">
<v-card width="400px" class="mx-auto mt-5">
<v-card-title>
<h1 class="display-1">ログイン</h1>
</v-card-title>
<v-card-text>
<v-form>
<v-text-field label="ユーザ名" prepend-icon="mdi-account-circle"/>
<v-text-field v-bind:type="showPassword ? 'text' : 'password'" label="パスワード" prepend-icon="mdi-lock"
v-bind:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'" @click:append="showPassword = !showPassword" />
<v-card-actions>
<v-btn class="info">ログイン</v-btn>
</v-card-actions>
</v-form>
</v-card-text>
</v-card>
</v-app>
</template>
<script>
export default {
name: 'App',
data: () =>({
showPassword : false
})
}
</script>
<style scoped>
p {
font-size: 2em;
text-align: center;
}
</style>
4.の詰まった箇所
・4-❸でアイコンが出ない
→ パッケージのインストールが必要だったので、下記2コマンドをプロジェクト配下で実行したら、無事に表示されるようになった!
yarn add material-design-icons-iconfont
yarn add @mdi/font
(cf. Vuetifyでアイコンが表示されない、Icons、RailsでVuetifyを使えるようにしてみた)
あとがき
環境構築でエラーがたくさんだと、ちょっと挫けかけますね。。でもなんとか構築できてよかったです。
初めてVuetifyを使いましたがこんなに簡単に今時の画面になるとは驚きでした。
今回は教本(記事)に沿っただけだったので、次はカスタマイズに挑戦したいです!
以上!
Author And Source
この問題について(エラーを乗り越えろ!! くじけないRuby初心者のRuby On Rails + Vue.js 環境構築(Ruby 2.6.4, Rails 6.0.1)), 我々は、より多くの情報をここで見つけました https://qiita.com/babiron_105/items/bce02fa7d0b12c0bf3b4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .