kgrss's blog

プログラムを中心にいろいろなことを記事にしていきます!

サイト更新計画〜gulpによる作業パイプライン〜

どうも、こがらしです。

前書き

現在自分のWEBページを新しいものにしようと考え、構築中です。 その上で今までMiddlemanだったりPadrinoだったりで作っていましたが、Gulpによる作業パイプラインを構築してその上でやっていこうと考えました。

今日のお話

Gulpを使って作るWEBサイト、の環境構築

なにをするか

  • nodebrewを入れる
  • nodejsを入れる
  • gulpや他のモジュールを入れる

こんな感じのことが必要になります
今回は、サイト構築に利用するhaml/sass/babelを一緒に入れていきます

nodebrewを入れる

今回はhomebrewを利用してインストールをします

brew install nodebrew

nodejsを入れる

自分はAWS Lambdaトの関係で古いですが4.3.2を入れました

nodebrew install v.4.3.2

gulp他を入れる

npm i -D babel
npm i -D babel-cli
npm i -D babel-preset-es2015
npm i -D browser-sync
npm i -D gulp
npm i -D gulp-haml
npm i -D gulp-scss

babel周りはgulpfileをes2015で書くようで追加しています。
今のところは、新しいWEBサイトにJSで何かしようというのは考えてないです

gulpfileを書く

今現在のgulpfileはこんな感じになっています
また、ファイル名はgulpfile.babel.jsで.babel.jsじゃないと認識してくれない点に注意してください

import gulp from 'gulp';
import haml from 'gulp-haml';
import sass from 'gulp-sass';
import browserSync from 'browser-sync';

gulp.task("browser-sync", ()=>{
  browserSync({
    server:{
      baseDir: "./build",
      index: "index.html"
    }
  });
});

gulp.task("reload", ()=>{
  browserSync.reload();
});

gulp.task("haml", ()=>{
  gulp.src("haml/**/*.haml")
  .pipe(haml())
  .pipe(gulp.dest("./build"));
});

gulp.task("scss", ()=>{
  gulp.src("scss/**/*.scss")
  .pipe(sass())
  .pipe(gulp.dest("./build/css"))
});

gulp.task("build", ["haml", "scss"], ()=>{
});

gulp.task("default", ["build", "browser-sync"], ()=>{
  gulp.watch( "./haml/**/*.haml", ["haml", "reload"]);
  gulp.watch( "./scss/**/*.scss", ["scss", "reload"]);
});
  • browser-syncはいわゆるライブリロードをするためのモジュールになります。
  • reloadはそのまんまですが、browser-syncのリロード機能を呼び出します
  • haml/scssはそれぞれソースのコンパイルをします
  • buildはまとめて処理をするようです
  • defaultにはbuildとbrowser-syncの呼び出し、さらにhaml/scssの変更監視を加えています

まとめ

簡単にですが、こんな感じでgulpによるWEBページ作成環境を構築しています
皆さんも是非やってみてください!

こがらしでした!