8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

タスクランナーとは何なのか

Posted at

こんにちは、toraguitarです。
フロントエンジニア(以下、FE)として働いています。
今回は「タスクランナー」についてまとめていきます。

この記事の目的

  • 筆者が 「言葉は知っているけど説明できない」というものをピックアップする
  • 調べなくても概要を説明できる、具体例を1~2つ出せるレベルに引き上げる
  • 歴史的背景など踏み込んだ説明は省く

言葉の意味

タスクランナーとは、開発作業の効率を上げる自動化ツールです。
多岐にわたる作業を簡素化し、開発の生産性を向上させます。

昨今のwebページはhtml, css, JavaScriptなどを利用して表示されますが、実際の開発でそれらを直接書くことはほとんどありません。
以下のようなものを用いて開発を行うことがほとんどです。

  • テンプレートエンジン(ejs, pugなど)
  • フレームワーク(Vue.js, Reactなど)
  • CSSプリプロセッサー(Sassなど)

これらはそのままだとブラウザに表示できないため、html, css, JavaScriptに変換=コンパイルする必要があります。
そのような変換作業を自動化してくれるのが、タスクランナーです。

どんなタスクランナーがあるのか

Gulp

最も耳にするタスクランナーのうちの一つですね。
JavaScriptで自動化の処理を書き、非同期的に自動化の処理を走らせることができます。
直感的で自由度が高く、初心者にはこちらの方がハードルが低いという解説が多かったです。

Grunt

Gulpと比較する文脈でよく登場しました。
Gulpに比べてより細かな債務分担ができる、つまりタスクの線引きがしやすいという特徴があります。
その分自由が聞きにくい、処理が遅いため、Gulpとどっちが良いかはプロジェクトによるようです。

npm scripts

Frontend Developer Roadmap 2023版で使用が推奨されているタスクランナーです。
package.jsonの「scripts」箇所に記述することで、シェルスクリプトやaliasコマンドを登録・実行することができます。

{
    "scripts": {
        "say": "echo 'Hello world!!'"
    }
}

なお、タスクランナーについて調べていると、関連してWebpackがよく登場しました。
Sassのコンパイルができるなど、一部タスクランナーの機能を備えてはいますが、基本的には「モジュールバンドラー」と呼ばれるものです。
こちらはJavaScriptなどのファイルを、複数ある状態から一つのファイルにまとめる=バンドルするためのプログラムです。

タスクランナーの役割

一言で開発効率を上げる、自動化すると言っても、具体的に何ができるのでしょうか。
ツールによっても様々ですが、ここでは2つ機能を紹介します。

コンパイル

冒頭にも挙げた通り、web開発ではhtmlやcssをそのまま書くことはほとんどありません。フレームワークやテンプレートエンジンを用いて書いたプログラムを、ブラウザで表示できる形に変換します。

ファイルの圧縮・最適化

JavaScriptのminify化、画像の圧縮など、ファイルの最適化を行います。
ファイルの読み込み速度、ページの表示速度の改善に繋がります。

まとめ

  • タスクランナーとは、開発効率を上げるための自動化ツール
  • gulp, Grunt, npm scriptなどが代表的なタスクランナーである
  • ファイルのコンパイル、圧縮、最適化を自動で行ってくれる

参考記事

8
3
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
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?