ブラックなWeb開発現場の救世主、Gruntのインストールと使い方:Gruntで始めるWeb開発爆速自動化入門(1)(2/2 ページ)
JavaScriptメインでWeb開発を行う際にさまざまな作業を自動化して開発効率を爆発的に高めるツール(Grunt、Yeoman、Bowerなど)やエディター、IDE、実行環境などを紹介していく連載。初回は主なビルドツールを紹介し、Gruntの概要と特長、環境構築の仕方や基本的な使い方に加え、CoffeeScriptを使った設定も解説する。
Gruntを使用する際に必要な技術
Gruntのインストールの前に、Gruntに関連する技術を簡単に解説します。
Node.jsとは
先ほども言ったように、GruntはNode.js上で動作します。Node.jsはGoogle ChromeのJavaScript実行環境(V8)をベースに構築されたサーバーサイドJavaScriptのプラットフォームです。JavaScriptを使用してイベント駆動でノンブロッキングIOモデルのアプリケーションを開発できます。
なお、本稿ではNode.jsについての詳細は解説しません。詳しくは記事「勢いで始めてみるNode.js Webアプリ開発」などを参考にしてください。
npmとは
プラグインモジュールの解説でも少し触れましたが、Gruntのプラグインは「npm」を使用して管理します。
npmとは、「Node Package Manager」の略で、Node.js用パッケージモジュールを管理するためのツールです。これを使うと、Node.js用パッケージモジュールのインストールや登録を行えます。
% npm install -g grunt-cli
つまり、Gruntのプラグインモジュールは、実際はNode.jsのパッケージモジュールとして扱われるということです。
なお、npmはNode.jsをインストールすると自動的にインストールされ、使えるようになります。
Gruntの環境構築
では、Node.jsとGruntをインストールしてみましょう(※筆者はMac OS X(10.9.1)を使用)。
Node.jsとnpmのインストール
Node.jsのダウンロードページから、自分のプラットフォームにあったバイナリをダウンロードして、インストールしましょう。
Macの場合は「Homebrew」や「NVM」を使用してインストールしても構いません。
Node.jsのインストールができたら、コンソールで動作確認してみましょう(※下記バージョンは2014年2月時点で最新のものです)。
% node -v v0.10.25 % npm -v 1.3.21
Node.js、npmともにインストールできているのが分かります。
Gruntのインストール
Gruntのインストールはnpmを使用して簡単に行えます。次のようにgrunt-cliパッケージをインストールしましょう。
% npm install -g grunt-cli
Gruntがインストールできているか確認します。gruntコマンドを次のように実行して、バージョンが表示されればインストール完了です。
% grunt -version grunt-cli v0.1.13
Gruntを試す環境ができたので、次の章で実際にプロジェクトを作成して動作確認をしてみましょう。
Gruntを使ってみる
ここからは実際にGruntを使ってみます。まずは、次のように適当なディレクトリを作成してください。
% mkdir path/your/gruntSampleApp % cd path/your/gruntSampleApp
Gruntを使用する際に必要なファイルは2つあります。先に紹介した「Gruntfile.js」と「package.json」です。
Node.jsが依存ライブラリなどの環境情報を管理するための設定ファイル「package.json」
package.jsonはNode.jsが依存ライブラリなどの環境情報を管理するための設定ファイルです。次のように「npm init」コマンドを実行してください。
% npm init
プロジェクト名やその説明など、幾つか対話形式で質問をされますが、そのままエンターキーを押していってください。package.jsonファイルが生成されます。
gruntモジュールをインストール
次に、gruntモジュールをインストールしましょう。プロジェクトごとにGruntのバージョンが違うこともあるため、gruntモジュールは個別にインストールします。
% npm install grunt --save-dev
save-devオプションを付けると、「package.jsonのdevDependencies」プロパティにモジュールを追加してくれます。先ほど生成された「package.json」を見てみてください。gruntモジュールが追加されています。
このpackage.jsonがあれば、他の環境でも「npm install」とすれば同じようにモジュールがインストールされます。
Gruntfile.jsファイルの作成
最後に、Gruntfile.jsファイルを作成しましょう。先ほど紹介したGruntfile.jsをそのまま使用します。
module.exports = function(grunt) { //Gruntの設定 grunt.initConfig({ pkg: grunt.file.readJSON('package.json') }); //defaultタスクの定義 grunt.registerTask('default', 'Log some stuff.', function() { //ログメッセージの出力 grunt.log.write('Logging some stuff...').ok(); }); };
Gruntの実行
ファイルが記述できたらGruntを実行してみてください。defaultタスクが実行されます。
CoffeeScriptを使用してGruntfileを記述する
Gruntでは、CoffeeScriptを使用してGruntfileを記述することもできます。先ほど記述したGruntfile.jsを削除し、Gruntfile.coffeeファイルを作成します。そして、下記内容でCoffeeScriptファイルを記述しましょう(内容は先ほどのGruntfileと同じです)。
#Gruntfile.coffee module.exports = (grunt) -> #Gruntの設定 grunt.initConfig pkg: grunt.file.readJSON "package.json" #defaultタスクの定義 grunt.registerTask "default","Log some stuff.",() -> grunt.log.write "Logging some stuff..."
gruntコマンドを実行してみてください。同じようにdefaultタスクが実行されます。
このように、GruntではJavaScript/CoffeeScriptどちらでも記述可能です。
次回から、Gruntでいろいろな処理を自動化させる手法を紹介
今回はいろいろなビルドツールやGruntの概要を説明し、Gruntのセットアップと動作確認について解説しました。
今回は、まだ役に立つようなタスクは実行させてませんが、今後はWebアプリ開発を行っていくに当たり、Gruntとそのプラグインモジュールを使っていろいろな処理を自動化させる手法を紹介していきます。
著者プロフィール
中村修太(なかむら しゅうた)
クラスメソッド勤務の新しもの好きプログラマです。昨年、東京から山口県に引っ越し、現在はノマドワーカーとして働いています。好きなJazzを聴きながらプログラミングするのが大好きです。
関連記事
- 爆捗! WordPressテーマ作成ショートカット(6):CSSコーディングでいますぐ使えるSass/Compass実践テク10連発!
本連載では、CMSのスタンダードでもある「WordPress」のテーマ作成を、Dreamweaverをメインに用いてさまざまなモダンな技術を組み合わせながら爆発的に捗(はかど)らせる方法を解説していく。今回は、Compassの「設定変数」やCSSスプライト、CSS3 Media Queries(メディアクエリ)やミックスインの共有などに関する小技を紹介する。 - 初心者のためのJavaScript入門(1):ようこそJavaScriptの世界へ (1/4)
JavaScriptで本格的なプログラミングの世界に触れてみよう。連載を通じて実用的なアプリケーションを作れるようになるはず!? - UXClip(24):ビギナー向けデバッグツールで効率的に開発しよう
主要なブラウザ「Chrome・Safari・Firefox・Internet Explorer」のビギナー向けデバッグツールが紹介された勉強会のエッセンスをお届けする。 - フレームワークで実践! JavaScriptテスト入門(1):JavaScriptテストの基礎知識と使えるフレームワーク6選 (1/3)
しっかりとJavaScriptの“テスト”を行うために、最近のJavaScript事情やテストを取り巻く環境、今注目のテストフレームワークを6つ紹介する - Scala+Play 2.0でWebアプリ開発入門(10):Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック
EHCacheを使うキャッシュ機構、非同期HTTP通信、Google Closure Compilerを使うJavaScriptの最適化、RequireJSを使うJavaScript依存関係の解決方法について解説します。 - Scala+Play 2.0でWebアプリ開発入門(9):Play2におけるJSONおよびCoffeeScriptの使い方
JSONを扱うためのパッケージやJSONとScalaの相互変換の方法、JsPathの使い方、CoffeeScriptの使い方などを解説します。 - WebデザイナのためのHTMLチューニング入門(1):Webサイトを“速く”表示させる7つの計測ポイント
FirefoxやYSlowを使ってWebサイトの問題点を探るには? ライブドアブログを速くした著者が7つのポイントを伝授します
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.