テックキャンプ日誌 Day48 (JS導入方法)

テックキャンプ日誌(全70日間)

48日目土曜日終了。

↓今日やったこと

フリマアプリ 出品機能(子のカテゴリー表示) 全然進んでない汗

 

今日からJS導入だったんですが、めっちゃ手間取ってしまった・・・(^◇^;)

2パターンJSの読み取り方があったので最初にまとめます。※application.html.erbの<head>タグ内に記述するところ。(gem ‘jquery-rails’ , Rails6)

 

⒈ <%= javascript_include_tag ‘application’ %>

app/assets/javascripts ディレクトリ作成

app/assets/config/manifest.js に //= link_directory ../javascripts .js 追記

app/assets/javascripts/application.js に下記記述

//= require jquery

//= require rails-ujs

//= require_tree .

これでapp/assets/javascripts下のjsファイルを扱えます。

 

2. <%= javascript_pack_tag ‘application’ %>

ターミナルで $ yarn add jquery (gem ‘jquery-rails’不要)

config/webpack/environment.js に下記追記

const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery'
  })
)

app/javascript/packs/application.js に require(‘jquery’) 追記

これでapp/javascript/packs/application.js内のjQueryコード読み込み可。

 

1. と2.の違いは‘include’‘pack’かの違い。2.はWebpackerを使ったJS導入の仕方でRails6から可能。

初め自分では1.をやっていたつもりだったが、なぜか読み込まれず。色々調べていたらRails6から’pack’になるという情報を発見し、その通りやってみたがapp/assets/javascripts/application.jsは読み込まれない。(今思えばそうなんだが)これでドツボにハマって2時間くらい調べてた(^◇^;) そしたら’pack’はWebpackerを用いる場合ということが分かった!

なので今回自分用という意味を込めてまとめました。

今日はあまり進まなかったが、ボチボチ行こう。

まだ慌てるような時間じゃない。

ではまた明日!(仙道好きやな)