Gruntはフロントエンド開発において、CoffeeScriptやSassなどを使うときに、コンパイルを自動化してくれるツールです。
gruntコマンドのインストール
Grunt.jsはnode.jsで動くツールです。もし、node.jsがインストールされていなければ、brewなどを使って
brew install node
としてインストールしておきましょう。
node -v
としてバージョンが帰ってくればOKです。
次にgrunt本体のインストールです。node.jsのパッケージ管理ツールであるnpmを使ってインストールします。
npm install -g grunt-cli
としてグローバル環境にインストールします。
grunt --version
を叩いてバージョンが表示されれば、インストール完了です。
package.jsonの作成
次にpackege.json
を作っていきます。package.json
とはRubyでいうところのbundlerのGemfileに当たるもので、必要なパッケージを一覧にしておくことで、あとでnpm install
とするだけで、必要なパッケージを全て自動でインストールしてくれます。
そんな便利なpackage.json
ですが、作るのは簡単で、
npm init
とするだけで、対話式の設定が立ち上がります。
よくわからなければ、適当にReturnキーを押しまくりましょう。終わったら、package.json
ができあがっているはずです。
あとはnpm install
するときに--save-dev
オプションをつけると自動的にpackage.json
の中に必要パッケージ情報が追記されていきます。
grunt本体のインストール
npm install -g grunt-cli
ではgruntコマンドをインストールしているだけなので、別途、フォルダ内にgrunt本体をインストールする必要があります。
npm install grunt --save-dev
これでうまく言ったらnode_modulesというフォルダができていて、中にはgruntディレクトリがあってインストールされていると思います。
Gruntfile.jsの作成
何を自動化するかを記述するGruntfile.js
を記述していきます。プラグインはここにいっぱいあります。
今回は自分がよく使うCoffeeScriptとSassを自動化していきたいと思います。js/coffee/common.coffee
とcss/scss/common.scss
を適当に作っておきましょう。
必要なcontrib-coffeee
とcontrib-sass
を検索してリンク先に行くと、Readmeの部分にインストール方法とGruntfileの設定方法が記述されています。まずはとりあえずインストールしましょう。
npm install grunt-contrib-coffee --save-dev npm install grunt-contrib-sass --save-dev
次にプラグインをロードするためのコードをGruntfile.jsに追記します。
Gruntfile.jsのひな形はこんな感じです。
module.exports = function(grunt){ grunt.initConfig({ //ここに設定を書いていく }) // ここにプラグインのロードやタスクの流れを記述する };
では、ここに設定をうにょうにょ書いていきましょう。
設定方法に関してはさっきのパッケージのページの下の方に書いてあります。
module.exports = function(grunt){ grunt.initConfig({ coffee: { compile: { files: { 'js/result.js': 'js/coffee/source.coffee' } } }, sass: { dist: { files: { 'css/common.css': 'css/scss/common.scss', } } } }) grunt.loadNpmTasks('grunt-contrib-coffee'); grunt.loadNpmTasks('grunt-contrib-sass'); grunt.registerTask('default', ['coffee', 'sass']); }
initConfig内は
{ コマンド名:{ ターゲット名:{ オプション } } }
という感じで書いていくみたい。
実行
さて、実際に実行してみましょう。
Running “coffee:compile” (coffee) task
Running “sass:dist” (sass) task
File css/common.css created.
みたいな感じでうまくjs/common.js
とcss/common.css
ができていれば完成です。
基本的な使い方はこんなかんじ。なれるとかなり便利そう。とはいえ、Ruby on Railsはこれ使わなくてもSassやCoffeeScriptのコンパイルを自動的にやってくれるみたいなんですが。
[…] ンストールや基本的な使い方に関しての詳細はこちらの記事を参考あれ。 […]
[…] ませんので、インストールやらなんやらに関してはこちらの記事を参照。 […]