はじめに
今回は、Railsのフロントエンド開発についてアウトプットしていこうと思います!
ブラウザが認識できる言語
ブラウザは、HTML、CSS、JavaScript、WebAssemblyという言語を認識して、画面にページを描写します!
開発を便利にする言語
開発者は、HTMLやCSSよりも便利な言語を使って開発を行いたいと考えています!
このような開発者が開発しやすいよう設計されたプログラミング言語は高級言語と呼ばれています!
高級言語
高級言語とは、機械よりも人間が理解しやすいように設計されたプログラミング言語のことです!
逆に、機械理解しやすい言語を低級言語と呼ばれています!
ブラウザが認識できる言語に変換する仕組み
便利な書き方ができる言語で開発しても、結局はブラウザが認識できる形にする必要があります!
つまり、言語を別の言語に翻訳する必要があるということです!
コンパイル
コンパイルとは、プログラミング言語を、動作する機会が理解できるよ王に翻訳する作業のことです!
コンパイルは、コンパイラと呼ばれるプログラムによって行われます!
プリコンパイル
コンパイラが翻訳できない言語を翻訳できるようにする事前コンパイルのことです!または、メインとなる処理に対して必要な前処理のことを指します!
アセットパイプライン
JavaScriptやCSSなどのアセットと呼ばれる静的ファイを小さくまとめてくれる機能のことです!
アセットパイプラインには、高級言語のプルコンパイルを行う機能も追加できるため、これを応用してSCSSやTypeScriptなどを使用した開発もできるようになります!
アセットパイプラインの処理は、プルコンパイル、連結、圧縮、配置の流れで行われます!
モジュールバンドラ
モジュールバンドラは、JavaScriptのモジュールの依存関係を考慮しながら管理するツールです!
モジュールとは、機能を1つずつ分けて他のファイルから読み込めるようにした処理のまとまりのことです!
webpack
webpackとは、Webアプリケーションを作成する際に必要な、様々なJavaScriptを一まとめに管理するためのツールです!
モダンなWebアプリケーション開発では、様々なJavaScriptライブラリを用いるため、その依存関係を管理してくれます!
webpackが行うとこは大きくわけ4つあります!
- 依存関係を解決するために、どのファイルを基準に(エントリーポイント)とするかを決めるEntry
- エントリーポイントにされ、webpackによってまとめられたファイルをどこへどのような名前で出力(アウトプット)するかを指定するOutput
- JavaScript以外のCSSやHTMLなどのファイルをモジュールに変換する方法を読み込み、指定して処理を行うLoaders
- 圧縮などの、ファイルをまとめる以外でローダーが実行できないタスクを導入し、拡張するPlugins
つまり、webpackを用いることで、JavaScriptのライブラリとJavaScript以外のさまざまな言語を、変換・圧縮した上で、好きな場所に配置することが可能となります!
Webpacker
webpackをRails仕様にし、専用の設定ファイルやヘルパーメソッドを用意してくれるGemです!
コメント