Grunt、javascriptプロジェクトを構築するためのツール

Gruntは、タスクを使用してコマンドラインからjavascriptプロジェクトを構築するためのツールです。 リリースは最近リリースされました。Ben "Cowboy" Almanの作者で、プロジェクトはgithubにあります。 この記事では、Gruntの基本、そのインストールと使用法について説明します。



現時点では、Gruntはベータステータスであり、活発に開発されていることに注意してください;この記事の執筆時には、バージョン0.3.9が使用されていました



設置



GruntはNPM(Node Package Manager)モジュールとしてインストールされます。 node.jsとnpmがインストールされていない場合は、それらをインストールする必要があります。 これは公式サイトnode.jsから実行できます。Macをお持ちの場合は、homebrewを使用してください。 次に、ノードのパッケージマネージャーであるnpmインストールする必要があります(npm gemとruby gemを並行して描画できます)。 公式サイトからnode.jsをインストールすると、 npmが含まれることに注意してください。 別に、ソースからnode.jsをビルドした場合、またはhomebrewを使用した場合にのみ、npmをインストールする必要があります。

Gruntを直接インストールするには、単純なnpm install -g grunt



コマンドを使用します。 -g



フラグはグローバルにインストールすることを意味します。つまり、Gruntはnode_modules



ルートフォルダーにインストールされるため、コマンドラインから常に使用可能になります。 特定のフォルダーでのみGruntを実行したい場合は、そのフォルダー内で-g



フラグを指定せずに同じコマンドを実行します。 インストールが成功すると、コンソール出力は次のようになります。



画面に同様の画像が表示されたら、すべての依存関係がインストールされているGruntでプロジェクトの作成を開始できます。



初期化



最初に、新しいプロジェクトを初期化する必要があります。 Gruntには、 commonjs



jquery



node



などのプロジェクトを初期化できる便利なテンプレートがいくつか含まれていnode



。 たとえば、jQueryプロジェクトを作成しましょう。 プロジェクトのフォルダーを作成し、 grunt init:jquery



を実行します。 いくつか質問があります。 Gruntはカッコ内にデフォルト値を表示します。変更しない場合は、Enterキーを押します。 私にとってはこのように見えました:





最初に見るファイルはgrunt.js



grunt.js



も呼ばれgruntfile



)です。 その内容は完全に理解できるとは思えないかもしれませんが、心配する必要はありません。 最も重要なこととして、Gruntはqunit



セクションをファイルに追加し、プロジェクトにtest



フォルダーを作成しました。 また、ファイルの組み合わせとファイルの追跡に関する指示も追加しました。 後者は、ファイルが変更されたときにタスクを自動的に起動することを意味します。

 watch: { files: '<config:lint.files>', tasks: 'lint qunit' }
      
      





このタスクでは、 config:lint.files



ファイルを使用しますconfig:lint.files



config:lint.files



の次のセクションを参照します。

 lint: { files: ['grunt.js', 'src/**/*.js', 'test/**/*.js'] }
      
      





Gruntは、これらのファイルのいずれかが変更されるとすぐに、 lint



およびqunit



(あなたが思ったとおりに実行します)を自動的に実行します。 とてもエレガント! これについては後で説明します。

ファイルの最後に、次が表示されます。

 grunt.registerTask('default', 'lint qunit concat min');
      
      





これは、パラメータなしで起動する場合、 lint



qunit



concat



、およびmin



を実行する必要があるというGruntの命令です。



打ち上げ



ターミナルにgrunt



と入力し、Enter grunt



を押します。 残念ながら、これは期待どおりに機能しませんでした。

 Running "lint:files" (lint) task Lint free. Running "qunit:files" (qunit) task Testing jquery.jsplayground-demo.html Running PhantomJS...ERROR
      
      





PhantomJSのインストールは非常に簡単です 。手順はこちらです。 PhantomJSはJavascript( Habr。の記事コメントトランスレーター)のコンソールエンジンであり、qunitテストを実行できます。 PhantomJSをインストールすると、 grunt



コマンドのコンソール出力は次のようになります。



それで、このスクリプトは何をしましたか:

  1. JSLintを介してコード検証を開始
  2. ブラウザを開かずにQunitテストを自動的に起動しました
  3. すべてのファイルを1つに結合しました(ただし、この例では既に1つのファイルがあります)
  4. マージされたファイルを縮小しました


あなたにとってどのようにしたらいいのかわかりませんが、私にとってこれはたった1つのチームにとって素晴らしい結果です!

たとえば、ファイルを変更するたびにこれらのコマンドをすべて実行したい場合は、 grunt.js



を編集するgrunt.js



です。 次のようなwatch



セクションを見つけます。

 watch: { files: '<config:lint.files>', tasks: 'lint qunit' },
      
      





ここにconcat



タスクとmin



タスクを追加できますが、覚えているように、これらすべてのアクションを実行するdefault



タスクを定義していdefault



。 したがって、ファイルを変更するときに、単にdefault



実行できdefault





 watch: { files: '<config:lint.files>', tasks: 'default' }
      
      





もちろん、実際には、節約が多すぎるときにconcat



min



実行するたびに、これが可能であることを示したかっただけです。 デフォルトで開始するタスク、リリース時に開始するタスク、開発中に開始するタスクなど、いくつかのタスクを作成できます。

src/jquery.jsplayground-demo.js



で自動的に作成されたjsファイルを見てみましょう。 内部には、ライセンス、著作権、githubへのリンクの表示があります-これらはすべて、 grunt init:jquery



コマンドによって自動的に追加されます。 次に、このファイルに変更を加えて、動作中のwatch



を確認しましょう。 まず、ターミナルでwatch



を実行する必要があります: grunt watch



。 次に、変更を加えましょう。無効なjavascriptを導入して、JSLintエラーが発生するようにします。 ファイルにsome rubbish stuff



を印刷しsome rubbish stuff



保存しました。 ターミナルの出力は自動的に更新されます。





これを今すぐ修正しますが、 $.fn.awesome



を除くすべてのjQueryコードも削除します。 Gruntはいくつかのテストを自動的に生成したため、ファイルを保存すると、テストがどのように分類されるかがわかります。 テストされたコードは削除されるため。





そして今、私は余分なテストを削除し、すべてのタスクが成功します:





grunt watch



を実行し、すべてのコードがテスト、検証、および縮小されていることを知って、プロジェクトで作業することがどれほど便利か想像してみてください。



おわりに



この短いレビューがGruntを使用するきっかけになったことを願っています。 個人的には、最近のいくつかのプロジェクトでそれを使用し、喜んでいます。



ご注意 翻訳者: grunt-contribプロジェクトもご覧になることをお勧めします。これには、アセンブリ中の最も一般的なタスクが含まれています。 頑張って!



All Articles