Gruntに入ろうとしていますが、これは初めてですが、その有用性がわかりません。
タスクランナーであることを理解しています。 bundled、uglify、jshint、minifyなど、スクリプト化されたタスクに変換できるものを実行するために使用できることを理解しています。
しかし、これがどのような利点をもたらすかはわかりません。これらのほとんどすべては、とにかくコマンドラインから実行できます。つまり、単純なシェルスクリプトを使用してそれらを組み合わせることができます。 grunt + gruntfilesのセットアップとタスクの作成は、シェルスクリプトを作成するよりもmore作業であるように思えます。
これについて何が欠けていますか?
Gruntは基本的にNodeJSの上に書かれたビルド/タスクマネージャーです。 ANT for Javaに相当するNodeJSスタックと呼びます。以下に、Gruntを使用する一般的なシナリオをいくつか示します。
シェルスクリプトでこれらのすべてを実行できるとは思いません。要約すると、はい、Gruntfile.jsのセットアップはjavascriptにほとんど触れていない人にとっては退屈です/ nodeJSが初めてです。学習者と同じ痛みを経験しましたが、Gruntは素晴らしいソフトウェアです。フロントエンドプロジェクトに適切なGruntfile.jsをセットアップするために時間を費やしてください。そうすれば、人生をずっと楽にしてくれたことに感謝します:)
The Advantage vs Shellスクリプト:
これらのタスクのすべてに対してシェルスクリプトを作成する場合、すべてのニーズに合わせて保守し、カスタマイズするのは面倒です。 Gruntfile.jsは実際、非常に簡単です。実行するタスク、それぞれのソースとターゲットを指定して、それを初期化する設定があります。
Yeoman、Gulpのプロジェクトシードジェネレーターとの統合は、考慮すべきもう1つの主要な要因です。 YeomanとGulpには、インテリジェントなデフォルトのGruntfile.jsが付属しています。彼のチームの唯一のUIコントリビューターである誰かにとって、これは私にとって貴重です!
フロントエンド技術に取り組んでいる人にとって、あなたと一緒に働いている人が複数いるなら、彼らがあなたのことを知るよりも、SOに関する多くの答えですでに十分に文書化されているGruntを知るのはかなり簡単ですシェルスクリプト。これは、大規模なチームの要因になる場合があります。
Gruntの多数のプラグインは、基本機能を拡張します。シェルスクリプトが非常に人気があり、非常にモジュール化されていない限り、プラグインがビルドされていることはわかりません。これは、プロジェクトに新しいフロントエンドテクノロジーを含めることにもなります。明日、プロジェクトでTypeScriptを使用する場合は、シェルスクリプトにこれを組み込み、自分の努力で説明する必要があります。 Gruntを使用すると、「npm install」と同じくらい簡単で構成を追加できます。
Accepted Answer で指摘されているほとんどの利点に同意しますが、キースチルケルが強調している Grunt&Gulpの使用を停止する理由
したがって、いくつかの利点はGruntのオーバーヘッドによって反論されます。少なくとも、Gruntを使用するかどうかの最終決定では、これらすべてを考慮する必要があります。