36
Grunt.jsを使った Expressの開発環境構築 Node.js勉強会 in 大阪 2013.5.25

Grunt.jsを使った Expressの開発環境構築

Embed Size (px)

DESCRIPTION

Node.js勉強会 in 大阪

Citation preview

Page 1: Grunt.jsを使った Expressの開発環境構築

Grunt.jsを使ったExpressの開発環境構築

Node.js勉強会 in 大阪 2013.5.25               

Page 2: Grunt.jsを使った Expressの開発環境構築

自己紹介

• かみやん (Twitter@kamiyam)

• Meteorworks エンジニア

• Webサービスつくってます

http://nantokaworks.com

Page 3: Grunt.jsを使った Expressの開発環境構築

grunt とはなにか?

Page 4: Grunt.jsを使った Expressの開発環境構築

Grunt.js

JavaScript(Node.js)製タスクランナー

Page 5: Grunt.jsを使った Expressの開発環境構築

Grunt.jsは(面倒な)タスクを代わりに代行してくれるツール

Page 6: Grunt.jsを使った Expressの開発環境構築

山積みのタスk・・・• CoffeeScriptのコンパイル

• Sassのコンパイル

• CSSファイルのコードミニファイ化・結合

• 画像ファイルの圧縮

• 画面の表示確認

Page 7: Grunt.jsを使った Expressの開発環境構築

キーワード

• grunt: 起動など(gruntコマンド)

• Gruntfile.js: gruntのタスク設定ファイル

Page 8: Grunt.jsを使った Expressの開発環境構築

キーワード

• jQuery: JavaScriptのライブラリ

• package.json: パッケージ構成ファイル

Page 9: Grunt.jsを使った Expressの開発環境構築

package.json 一緒に利用するモジュール情報などを

記述する設定ファイル

Node.jsで作成するすべての成果物は

一つのパッケージモジュールとして扱うため、

必須ではないがかならず添えておくようにする。

Page 10: Grunt.jsを使った Expressの開発環境構築

インストール

$ npm install -g grunt-cli

※ gruntコマンドが利用可能となる。

Page 11: Grunt.jsを使った Expressの開発環境構築

環境構築

$ vim Gruntfile.js

Page 12: Grunt.jsを使った Expressの開発環境構築

Gruntfile.js 設定例module.exports = function(grunt) {

grunt.initConfig({ xxxxxx: { //......... } }); grunt.loadNpmTasks('grunt-contrib-xxxxxx'); grunt.registerTask('default', ['xxxxxx']);};

Page 13: Grunt.jsを使った Expressの開発環境構築

プロジェクトの内容、規模によってつかうタスク(gruntのモジュール)を追加していく。jQueryのようにプラグインを追加するイメージ

Page 14: Grunt.jsを使った Expressの開発環境構築

open & watch & LiveReload タスク

Page 15: Grunt.jsを使った Expressの開発環境構築

open & watch & LiveReload タスク

1,ブラウザを開いて

Page 16: Grunt.jsを使った Expressの開発環境構築

open & watch & LiveReload タスク

1,ブラウザを開いて

2,ファイルの変更(を監視)して

Page 17: Grunt.jsを使った Expressの開発環境構築

open & watch & LiveReload タスク

1,ブラウザを開いて

2,ファイルの変更(を監視)して

3,ブラウザをリロードして

Page 18: Grunt.jsを使った Expressの開発環境構築

open & watch & LiveReload タスク

1,ブラウザを開いて

2,ファイルの変更(を監視)して

3,ブラウザをリロードして

確認する!!

Page 19: Grunt.jsを使った Expressの開発環境構築

open & watch & LiveReload タスク

1,ブラウザを開いて

2,ファイルの変更(を監視)して

3,ブラウザをリロードして

超めんどくさいですよね。確認する!!

Page 21: Grunt.jsを使った Expressの開発環境構築

$ npm install$ grunt

デモ 実行

Page 22: Grunt.jsを使った Expressの開発環境構築

ちなみに似たようなことをする仲間にこのようなおっさんがいます(ry!

Page 23: Grunt.jsを使った Expressの開発環境構築

gruntもNode.jsのサーバを起動しています。

ここまではフロントエンド側で完結する話。

Page 24: Grunt.jsを使った Expressの開発環境構築

Grunt.jsとExpressの連携

Page 25: Grunt.jsを使った Expressの開発環境構築

どのようにしてgruntとExpressを連携させるのか

Page 26: Grunt.jsを使った Expressの開発環境構築

grunt

Grunt.jsで起動したフロントサーバとExpressのバックエンドサーバの連携

Page 27: Grunt.jsを使った Expressの開発環境構築

grunt

Grunt.jsで起動したフロントサーバとExpressのバックエンドサーバの連携

Page 28: Grunt.jsを使った Expressの開発環境構築

grunt

Grunt.jsで起動したフロントサーバとExpressのバックエンドサーバの連携

Proxy

Page 29: Grunt.jsを使った Expressの開発環境構築

リバースプロキシモジュールを使う(単体)

■ grunt-connect-proxyhttps://github.com/drewzboto/grunt-connect-proxy※ 設定などの細かい内容はサイトを参照

Page 30: Grunt.jsを使った Expressの開発環境構築

テンプレート生成モジュールgrunt-init を使う

■ grunt-init-expresshttps://github.com/kamiyam/grunt-init-express

Page 31: Grunt.jsを使った Expressの開発環境構築

フォルダ構成など各個人の癖もありこれが正解というものがない

例えば、

Page 32: Grunt.jsを使った Expressの開発環境構築

• Viewファイルだけに限定する or しない

• サーバサイドのjsファイルのwatch、

LiveReloadを許可するのか

(supervisorのリロード時間とgruntのリ

ロード時間が合わない・・・などなど)

Page 33: Grunt.jsを使った Expressの開発環境構築

使いこなせれば、バックエンドの言語を問わず(例えば、PHPなどWordPressでも) 同じことが出来る。Watch するファイルが変わるだけ。

Page 34: Grunt.jsを使った Expressの開発環境構築

grunt

Proxy

Page 35: Grunt.jsを使った Expressの開発環境構築

まとめ

• Grunt.js はNode.jsを用いたタスクランナー(便利屋)• リバースプロキシモジュールを使えばバックエンドの種類は問わない

Page 36: Grunt.jsを使った Expressの開発環境構築

ご静聴ありがとうございました