| 原作者 | ベン・アルマン |
|---|---|
| 開発者 | ベン アルマン、タイラー ケレン、カイル ロビンソン ヤング、ヴラド フィリッポフ、シンドレ ソルフス、アイザック デュラゾ、ジャロッド オーバーソン、ティム ブラニエン、ヨーン ザフェラー、ジェームズ スミス、デイブ ゲデス |
| 初回リリース | 2016年4月4日[1] |
| 安定版リリース | 1.4.1 / 2021年4月22日[2] |
| リポジトリ | github.com/gruntjs/grunt |
| 書かれた | JavaScript |
| オペレーティング·システム | Linux、macOS、Windows |
| プラットフォーム | Node.js |
| 利用可能 | 英語 |
| タイプ | タスクランナー、ビルドツール |
| ライセンス | MITライセンス[3] [4] |
| Webサイト | gruntjs.com |
GruntはJavaScriptの タスクランナーであり、縮小、コンパイル、ユニットテスト、リンティングなどの頻繁に実行されるタスクを自動的に実行するツールです。コマンドラインインターフェースを使用して、ファイル(Gruntfileと呼ばれる)で定義されたカスタムタスクを実行します。GruntはBen Almanによって作成され、 Node.jsで書かれています。npm経由で配布されています。2022年10月現在、Gruntエコシステムでは6,000を超えるプラグインが利用可能です。[5]
Gruntを使用している企業やプロジェクトには、Adobe Systems、jQuery、Twitter、Mozilla、Bootstrap、Cloudant、Opera、WordPress、Walmart、Microsoftなどがあります。[5]
概要
Gruntはもともと、JavaScriptビルドプロセスタスクのスイートを1つの巨大なファイルに記述および維持することを簡素化する効率的な代替手段として、2012年にBen Almanによって作成されました。JavaScriptプロジェクト用のタスクベースのコマンドライン ビルドツールとして設計されました。[6]
Grunt は主に、日常的に実行する必要があるタスクを自動化するために使用されます。一般的に使用されるタスクを実行するためにインストールして直接使用できるプラグインが何千もあります。Grunt の最も望ましい機能の 1 つは、高度なカスタマイズ性です。つまり、開発者は個人のニーズに合わせてカスタム タスクを追加、拡張、変更できます。各タスクには、ユーザーが設定できる一連の構成オプションがあります。さらに、Grunt はカスタム タスクを定義する機能を提供し、複数の既存のタスクを 1 つのタスクに結合したり、まったく新しい機能を追加したりできます。[7]
基本概念
コマンドラインインターフェース
Gruntのコマンドラインインターフェース(CLI)は、 npmを通じてグローバルにインストールできます。gruntコマンドを実行すると、現在のディレクトリにローカルにインストールされているGruntのバージョンが読み込まれ、実行されます。したがって、異なるバージョンのGruntを異なるフォルダに保存し、必要に応じてそれぞれを実行することができます。[5]
ファイル
プロジェクトで Grunt を使用するには、ルート ディレクトリに package.json と Gruntfile という 2 つの特定のファイルを作成する必要があります。
- package.json -名前、バージョン、説明、作成者、ライセンス、依存関係 (プロジェクトに必要な Grunt プラグイン) などのプロジェクトのメタデータ
dependenciesが含まれています。すべての依存関係は、またはdevDependenciesセクションのいずれかにリストされています。 - Gruntfile -タスクを構成したり、既存のプラグインをロードしたり、カスタム タスクを作成したりするためのコードが含まれる、「Gruntfile.js」または「Gruntfile.coffee」という名前の有効な JavaScript またはCoffeeScriptファイル。
タスク
タスクは、指定されたジョブを実行するモジュールです。これらは Gruntfile で定義されます。
開発者は、既存の Grunt プラグインから定義済みのタスクをロードしたり、カスタム コードを記述して要件に応じて独自のタスクを定義したりできます。定義したら、これらのタスクは、 を実行するだけでコマンド ラインから実行できますgrunt <taskname>。Gruntfile<taskname>で定義されている が「default」の場合は、 を実行するだけでgrunt十分です。
例
以下は、プラグインを読み込み、カスタム タスクを作成し、それらを構成する方法を示す、JavaScript で記述された Gruntfile の例です。
モジュール.エクスポート=関数( grunt ) {
// タスク構成
grunt . initConfig ({ taskName1 : 'Task1 Configuration' , taskName2 : 'Task2 Configuration' });
// プラグインを読み込みます
grunt . loadNpmTasks ( 'pluginName1' ); grunt . loadNpmTasks ( 'pluginName2' );
// カスタムタスク
grunt . registerTask ( 'customTaskName1' , 'カスタムタスクの説明' , function ( taskParameter ) { // カスタムステートメント});
// 複数のタスクを 1 つのタスクに結合する
grunt . registerTask ( 'customTaskName2' , [ 'taskName1' , 'customTaskName1' ]); // デフォルトのタスク - タスク名が指定されていない場合に実行されますgrunt . registerTask ( 'default' , [ 'customTaskName2' ]);
};
上記の例では、 コマンドを実行すると、 と の両方の組み合わせとして上で定義されたgruntが実行されます。
<customtaskName2><taskName1><customTaskName1>
プラグイン
プラグインは、一連のタスクを定義する再利用可能なコードです。各プラグインには、Gruntfile と同じ構文を持つ JavaScript ファイルを含むタスク ディレクトリが内部に含まれています。ほとんどの Grunt プラグインは、npmでキーワード gruntplugin[8]で公開され、 というプレフィックスが付けられています。これにより、Grunt は Grunt のプラグイン一覧にすべてのプラグインを表示できます。Grunt によって公式にサポートされているプラグインには[8] というプレフィックスが付けられ、プラグイン一覧に星印が付けられています。人気のあるプラグインには、grunt-contrib-watch、grunt-contrib-clean、grunt-contrib-uglify などがあります。
gruntgrunt-contrib
開発者は、プラグインを使用して独自の Grunt プラグインを作成しgrunt-init、コマンドを使用してnpmnpm publishに公開することもできます。
利点
Grunt を使用する利点は次のとおりです。
- すべてのタスク ランナーには、一貫性、有効性、効率性、再現性などの特性があります。
- JavaScript タスクや静的コンテンツの操作に使用できる、多数の定義済みプラグインにアクセスできます。
- ユーザーが定義済みのプラグインを使用してタスクをカスタマイズできるようにします。
- コーディングよりも構成アプローチを好みます。
- ユーザーが独自のプラグインを追加し、npmに公開できるようにします。
比較
アリ
Ant またはApache AntはJavaベースのビルドツールです。Ant には 100 を超える組み込みタスクがあり、Java ビルド構造のプロジェクトに適しています。Ant でカスタムコードを書くには、ユーザーはJARファイルを作成し、それをXMLから参照する必要があります。これにより、Java 自体を必要としないプロジェクトに不要な複雑さが加わります。Ant ビルド構成は、 JSON形式ではなく XML でリストされます。 [7]
レーキ
Rake を使用すると、開発者はRubyでタスクを定義できます。Rake にはプラグインや定義済みタスクの概念がないため、必要なアクションをすべて記述して実行する必要があります。これにより、再利用可能なプラグインが多数ある Grunt と比較すると、開発コストが高くなります。[7]
ゴクリ
Gulp.js は、 Grunt に似た JavaScript ベースのタスク ランナー ツールです。どちらもモジュール ベースのアーキテクチャを採用し、 npmに基づいています。Gulp のタスクは、構成ではなくコードで定義されます。Gulp は Grunt よりも高速です。Grunt は一時ファイルを使用してタスク間で出力を転送しますが、Gulp ではファイルはタスク間でパイプされます。 [7]
参照
参考文献
- ^ 「バージョン 1.0.0 のリリース日」 。2020年 12 月 31 日閲覧。
- ^ 「リリース · gruntjs/grunt」。GitHub 。 2022年8月16日閲覧。
- ^ 「GitHub 上の LICENSE ファイル」。GitHub。2020年 12 月 31 日閲覧。
- ^ 「Grunt のライセンス フィールド - npm」。2020 年 12 月 31 日閲覧。
- ^ abc 「Grunt: JavaScript タスクランナー」。gruntjs.com。2016年 9 月 14 日閲覧。
- ^ 「Grunt の紹介 - オープンソース、パフォーマンス、ツール、ワークフロー - Bocoup」。bocoup.com。2016年 9 月 14 日閲覧。
- ^ abcd Cryer, James (2015). Pro Grunt.js . Apress. p. 1. ISBN 978-1-4842-0013-1。
- ^ ab Pillora, Jaime (2014). Grunt 入門: JavaScript タスク ランナー. Livery Place 35 Livery Street Birmingham B3 2PB, UK.: Packt Publishing Ltd. ISBN 978-1-78398-062-8。
{{cite book}}: CS1 メンテナンス: 場所 (リンク)
さらに読む
- Cryer, James (2015). Pro Grunt.js . Apress. ISBN 978-1-4842-0013-1。
- Pillora, Jamie (2014)。Grunt入門: JavaScript タスク ランナー。Packt Publishing Ltd. ISBN 978-1-78398-062-8。
外部リンク
- 公式サイト
