ラベル タスクランナー の投稿を表示しています。 すべての投稿を表示
ラベル タスクランナー の投稿を表示しています。 すべての投稿を表示

2016年2月8日月曜日

フロントエンド・タスクランナー(2: Gulp インストール編)

お疲れ様です。
先日薬を貰うために薬局のソファでぼーっと待っていた所、目の前を通り過ぎたおばあさんのバッグから飛び出ていた先端の鋭い牛蒡が目に突き刺さりそうになるという、恐ろしい思いをしましたふみえです。

さて、今回は前回の続きということで、タスクランナー Gulp を実際にインストールしていきます。
構築環境は OS X El Capitan バージョン10.11.3です。

0. 前提条件

Xcode をインストールしていること

1. Homebrew インストール

OS X 用タスクマネージャー Home Brew をインストールします。
こちらのページに遷移後、表示されているコマンドをターミナルで実行します。
$ brew -v
でバージョンが表示されたらインストール成功です。

2. rbenv インストール

rbenv は Ruby のバージョン・マネージャーです。rvm の後発という安易な理由で、こちらをインストールしていきます。
$ brew install rbenv
※ もしかしたら sudo で実行したほうが良いかもしれないです。
パスを通します。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

$ rbenv -v
こちらでバージョンが表示されたら成功です!

3. nvm をインストール

nvm の github のページにて、curl で最新のバージョンのものを持ってきます。今回は v0.30.2 です。
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
ここまで来たら、ターミナルを閉じて再度起動してください。
使用したい node のバージョンを下記のように指定します。
$ nvm install v4.2.6


4-1. Gulp をグローバルインストール

いよいよ Gulp をグローバルインストールします。
$ npm install -g gulp
次に任意のプロジェクト(ディレクトリ)を作成し、移動します。今回は gulp_test ディレクトリ(プロジェクト)を作成していきます。
$ mkdir gulp_test

$ cd gulp_test
ここで、プロジェクトのパッケージを管理するための package.json を下記のコマンドで自動作成させます。要するに npm の初期設定です。
この初期設定は対話形式で行われます。特別な設定が無いならずっと Return キー押下で問題ありません。最後に"Is this ok?"ときかれるので、yes とこたえましょう(^o^)
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install  --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (gulp_test)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/toyooka/gulp_test/package.json:

{
  "name": "gulp_test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this ok? (yes) yes
この結果、package.json ファイルが作成されます。デフォルトの中身は以下のようになります。
  {
    "name": "gulp_test",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
      "gulp": "^3.9.0"
    }
  }


4-2. カレントディレクトリ内で gulp に依存関係をもたせる

先ほど行ったのは gulp のグローバルインストールになりますが、これから行うのは、今いるプロジェクト用に gulp をインストールし、先ほどの package.json に 'devDependencies' を追記してくれるコマンドです。
  $ npm install gulp --save-dev
これで、package.json の中身を確認してみましょう。ファイル内に devDependencies が追記されました。
  "devDependencies": {
    "gulp": "^3.9.0"
  }
さらに、node_module というディレクトリができて、 gulp さんがいらっしゃるのが確認できます。

5. Gulp を設定する

このプロジェクト内で gulp を動かすためには gulpfile.js を作成しなければなりません。
  var gulp = require('gulp');


6. Sass を Gulp で動かしてみる

Gulp の動作確認のために、gulp で Sass を動かしてみましょう。その準備として、sass/style.scss ファイルにネストした適当なコードを書いて保存します。
  header {
    font-size: 15px;
    line-height: 1;

    span {
      font-weight: bold;
    }
  }
次に gulp で Sass をコンパイルできるように gulp-sass というパッケージをインストールします。
  $ npm install gulp-sass --save-dev
上記コマンド実行後に package.json ファイルを見てみてください。devDependencies に下記の行が追加されていることを確認しましょう。
  "gulp-sass": "^2.1.1"
次に、gulpfile.js に Sass の設定をしていきます。
  var gulp = require("gulp"); // gulp の読み込み
  var sass = require("gulp-sass"); // gulp-sass の読み込み

  // sass コンパイルのタスク処理
  gulp.task('sass', function(){
    gulp.src('sass/style.scss') // コンパイルしたいファイルを指定
        .pipe(sass())
        .pipe(gulp.dest('./css')); // css ディレクトリ以下にコンパイルしたファイルを置く
  });
.pipe() は src で指定したファイルに対してその中で指定した処理を施す命令です。チェーンで次々に処理をつなぐことができます。
これで、準備完了です!それでは、コンパイルさせてみましょう!
  $ gulp sass
css ディレクトリの中に style.css が生成されていると思います。では、その中身を確認してみましょう!
  header {
  font-size: 15px;
  line-height: 1; }
  header span {
    font-weight: bold; }
ドドン!!ちょっと括弧の位置やインデントが微妙ですが、Sass のファイルが CSS ファイルにコンパイルされました(^o^)

こんな感じでいろいろな処理を自動化させてしまいましょう!!

参考記事:

2016年1月21日木曜日

フロントエンド・タスクランナー(1: 入門編)

フロントエンドエンジニア ふみえです。 今回はフロントエンド・タスクランナーについて書いていきたいと思います。

そもそもタスクランナーって何?

フロントエンド開発において必要になってくる処理といえば、下記のようなものが挙げられると思います。 コードの圧縮 Sass などのコンパイル ファイル変更して、見た目をブラウザがをリフレッシュして確認 フロントエンド開発におけるタスクランナーとは、上記のような処理を自動で行ってくれるツールです。 その代表的なものに、Grunt (http://gruntjs.com/) や Gulp (http://gulpjs.com/) があり今回は今業務で使用している Gulp について書いていきます。

thumbnail

Gulp を選んだ理由

調べたところによると下記のようだそうで、Gulp に決定しました!

  • Node.js の StreamAPI を使用しているため処理が速い
  • 設定ファイルが書きやすく、読みやすい
  • Grunt の問題点が解決されている


Gulp の導入方法

こちらですが、次回まとめてあげようと思います。 内容浅くてすみません。。。
次回は内容も夢もモリモリでお届けいたします! 以上、ふみえでしたー!

参考記事

http://liginc.co.jp/web/tutorial/117900
http://qiita.com/Kshi-Kshi/items/634799bb57872ce0a169 https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md