何をしたか
今までに作ったRailsアプリは
- Sprockets + JSのライブラリはCDNでレイアウトファイルから読み込み
- Webpacker + JSのライブラリはnpmで読み込み
のパターンしか作ったことがなかったのですが、この度、
- Sprockets + JSのライブラリはnpmで読み込み
というアプリを作ることになり、やり方をメモしようと思います。
具体的にはhttps://swiperjs.com/
というライブラリの導入プロセスを紹介していきます。
npm + Rails の初め方
npm自体は、node.js
をダウンロードするとついてきます。Railsの環境構築時にnode.jsはインストールされているはずなので、
$ npm -v
でバージョンが表示されたらOKです。
ライブラリのインストール
インストールしたいライブラリをnpmで導入します。
$ npm install swiper
npmバージョン4からは--save
オプションをつけなくてもpackage.json
を更新してくれます。
アセットパイプラインにパスを追加
node_modules
配下のパスを見ながら、アセットパイプラインにパスを追加します。今回のswiper
の場合、必要なファイルswiper-bundle.js
は下記の位置にありました。
node_modules
└── swiper
└── swiper-bundle.js
なので、application.js
には、以下の様に記入します。
//= require rails-ujs
//= require activestorage
//= require swiper/swiper-bundle.js # 追記
//= require_tree .
初期化に必要なファイルを追加
初期化に必要なコードがあれば、assets/javascripts
内に別ファイルを作るか、application.js
内に、記載します。今回はapplication.js
内に記しました。
$(function() {
new Swiper('.swiper-container', {
loop: true,
// If we need pagination
pagination: {
el: '.swiper-pagination',
},
// Navigation arrows
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
})
})
完成
これで、無事swiper
が動作する様になりました^^
感想・参考記事等
RailsとJSの最近の流れを振り返る形になって楽しかったです^^
以下、参考にした記事です。