LoginSignup
0
0

More than 3 years have passed since last update.

Rails Asset Pipeline 基礎のキ

Posted at

Asset Pipelineとは

JavaScriptやCSSのアセットを最小化 (minify: スペースや改行を詰めるなど) または圧縮して連結するためのフレームワーク
参照: Railsガイド -AssetPipelineについて-
https://railsguides.jp/asset_pipeline.html

この記事は、AssetPipelineの概要を説明しておくことで、RailsガイドのAssetPipeline記事の理解度を深めるためのものです。

そもそもcoffeescript、sass、erbなどはプログラムを書く・読む人側にとって生のjs/cssよりも簡単に書けるので嬉しいが、実行するマシン側にとっては読み取りづらいもの。これらcoffeescript, sassなどは高級言語と呼ばれるが、これらを .js.coffee→.jsに、 .css.sass→.css に自動でコンパイルとminify(縮小)してくれるのが、Asset Pipelineの役目。

ただし、コンパイルは、開発(development)環境のみで行われる。開発環境では、debuggerなどでデバッグをする以上、出来る限り、開発中のjs/cssを保持していた方がプログラムを書く・読む人側にとっては助かるからである。

ここでのコンパイルの定義は、プリコンパイルを含まないものとします。後述。

では、本番環境では何が行われているか?
本番環境では

1: プリコンパイルファイル群の存在
2: 1のファイル群を1枚のjsファイル、1枚のcssファイルに統合
3: 圧縮
4: ダイジェスト付与

を行う。この最初に出てきたプリコンパイルファイルについてだが、そもそも本番環境でもコンパイルを行ってしまうと、アプリケーションの実行速度に大きく影響されてしまう。
そのため、予めコンパイルされたファイル群を持たせておく(プリコンパイルする)ことで本番環境での実行速度を保とう、ということだ。

開発環境と、本番環境の流れを図で表すと、以下のようになる。左上から始まり、開発(development)環境は途中で出力されるが、本番環境は最後の右下に到達する。
スクリーンショット 2020-11-07 23.45.58.png

上記の内容がRailsガイドの理解に深まることを願う。
https://railsguides.jp/asset_pipeline.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0